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

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

Отправить сообщение

Знакомство с указателями в Паскале

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров12K

Всем читателям habr.com, привет! Мы студенты Технического ВУЗа- Мария и Екатерина, и хотим рассказать о своем опыте работы с указателями на языке программирования Паскаль.

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

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

Читать далее
Всего голосов 38: ↑27 и ↓11+24
Комментарии171

Что нам несет Python 3.12

Время на прочтение3 мин
Количество просмотров34K

Переписали виртуальную машину на новый DSL

И теперь ее гораздо проще менять, оптимизировать и проводить эксперименты.

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

Еще один пример: опкод CALL_FUNCTION. Сам по себе довольно медленный. У него есть целая семья оптимизаций, например специализация CALL_FUNCTION_ISINSTANCE, когда мы выкидываем промежуточный слой и сразу вызываем C-реализацию isinstance. Минус в том, что Python богатый и динамически типизированный язык. В runtime может что-то поменяться и мы получим замедление — придется сваливаться обратно на общий путь опкода CALL_FUNCTION.

Читать далее
Всего голосов 44: ↑44 и ↓0+44
Комментарии10

Новый чип расширяет возможности ИИ

Время на прочтение10 мин
Количество просмотров4.1K

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

Читать далее
Всего голосов 12: ↑9 и ↓3+7
Комментарии12

Какими гибкими навыками (soft skills) и почему должен обладать каждый QA Engineer в 2023 году

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров15K

Какими навыками должен обладать успешный в своем деле
QA Engineer в 2023 году? Скорее всего, многие из вас в первую очередь подумают про навыки технического характера. Как будто только жесткие навыки (hard skills) являются гарантом стремительного профессионального и карьерного роста. Эта мысль верна, но подобная формула профессионального успеха выглядит неполной: в ней отсутствует упоминание о психологических и поведенческих навыках – гибких навыках, известных как soft skills.

Настоящая статья посвящена гибким навыкам (soft skills), без которых достичь профессионального успеха и становления попросту невозможно. Давайте обсудим наиболее важные навыки, которыми должен обладать каждый уважающий себя QA Enginner в 2023 году, и разберём для решения каких именно профессиональных задач они необходимы и почему.

Что же такое гибкие навыки (soft skills)? Во-первых, это качества, определяющие способность специалиста эффективно выстраивать рабочие процессы, решать возникающие на проекте проблемы, выходить из информационного кризиса и т.п.

Но, к сожалению, для большинства, особенно для тех, кому 30 и более лет, soft skills это лишь перечень прилагательных, указываемых в резюме в разделе «О себе» для галочки, в чём и заключается основная проблема: о них часто говорят, но не всегда уделяют достаточного внимания их развитию.

Рассмотрим подробно топ 10 самых важных гибких навыка, необходимых в профессии QA Engineer и IT отрасли в целом.

Читать далее
Всего голосов 6: ↑4 и ↓2+5
Комментарии7

Минималистичный YouTube. Расширения для браузера и альтернативные клиенты

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров63K

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

Один из главных «нарушителей» — YouTube. Стоило один раз посмотреть пляжный волейбол на Олимпийских играх — и он уже несколько лет показывает женщин в купальниках на главной странице (пример). Даже неудобно открывать YouTube в присутствии сына…

Непрошеные и неуместные рекомендации видео — общая проблема, на которую часто жалуются. К счастью, их легко заблокировать, как и весь остальной мусор. Можно ходить на серверы YouTube через кастомный фронтенд, через сторонние клиенты или вообще из консоли. Некоторые альтернативные способы просмотра особенно актуальны в свете потенциальной блокировки YouTube на территории РФ.
Читать дальше →
Всего голосов 109: ↑106 и ↓3+127
Комментарии80

Учимся учиться или как получить реальную пользу от курсов

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров24K

Машина по продаже IT‑курсов исправно работает не первый год. Каждое рекламное объявление даёт классную перспективу: стань разработчиком за 6 месяцев, аналитиком за 8 или вовсе тестировщиком за 3. Плати деньги — и вопрос с учёбой и трудоустройством решён.

В реальности существует огромная пропасть между продающими обещаниями и реальным результатом. Можно спустить миллионы рублей на десятки курсов и в результате всё равно ничего не понимать. Как обойти эту ловушку, чтобы выбрать и пройти курс с максимальной пользой мы обсудили с Python‑разработчиком Николаем Свиридовым.

Читать далее
Всего голосов 19: ↑7 и ↓12-3
Комментарии4

Причины отказа в приеме на работу и что на самом деле за ними стоит

Время на прочтение7 мин
Количество просмотров24K

1. Личностные качества (soft skills)

Возраст.

2. Уровень кандидата выше требуемого (overqualified)

3. Отсутствие опыта работы с конкретным инструментом / над конкретной задачей

4. Несоответствие корпоративной культуре

5. Зарплата (готовность кандидата идти на понижение)

В попытке получить фидбек от каждого, не стоит забывать, что у разных компаний разный формат оценки. Использовать обратную связь как инструмент развития можно и нужно, но не стоит «закапываться» (мне отказали, потому что им было важно это, теперь я буду этот навык демонстрировать везде и всегда). У всех разные задачи и цели, под которые и формируется идеальный портрет кандидата.

С каким негативным фидбеком можно работать (оспорить)?

Читать далее и подробнее
Всего голосов 20: ↑8 и ↓12-2
Комментарии71

Пишем GPT в 60 строк NumPy (окончание, 2/2)

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K
image

В первой части поста мы начали реализацию с нуля GPT всего в 60 строках numpy.

Во завершающей части мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Топ вопросов на Junior собеседованиях

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров15K

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

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

Читать далее
Всего голосов 18: ↑2 и ↓16-14
Комментарии29

Как изучать язык Python для веб-разработки в 2023 году. Общие ориентиры

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров31K

Привет, Хабр! Меня зовут Тимофей, я Python Engineer с опытом в 3+ года.

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

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

Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии7

Как работает поиск по коду на Github

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров13K


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


Нам часто задают вопрос о новом поиске по коду: «Как он работает?». В дополнение к моей лекции на GitHub Universe, я в общих чертах отвечу на этот вопрос, а также немного расскажу о системной архитектуре и технических основах данного продукта.


Так как же он работает? Мы создали собственный поисковый движок с нуля на Rust специально для поиска по коду. Наш поисковый движок называется «Blackbird», но прежде чем я стану описывать как он работает, думаю, что нужно понять наши предпосылки. На первый взгляд, создание поискового движка с нуля выглядит спорно. Зачем это делать? Разве уже нет большого количества существующих решений с открытым исходным кодом?

Читать дальше →
Всего голосов 10: ↑9 и ↓1+10
Комментарии10

Зачем кодить, если можно не кодить? Часть 2: Google Sheets и Notion

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров4.9K

Всем привет, и с вами снова Данил Губанов — backend-разработчик в Точке. В этом материале я расскажу об инструментах, с которыми можно быстро сделать лендинг с формами, создать таблицу и даже разработать приложение для психологической помощи (и всё это без кода). Речь пойдет про Notion и Google Sheets. Поехали!

Поехали
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Rust vs C#: два способа решить проблему ссылок в структурах

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров9.9K

Возврат ссылки на структуру из метода, объявленную в этом самом методе, является одним из самых классических примеров "висячих ссылок". Но что если возвращается не ссылка, а структура, содержащая ссылку? И не явно, а через вызов другого метода? Как понять, где у нас явный "провис ссылки", а где нормальный код? Звучит как какая то "дичь", но подобный кейс - вполне реальная боль для автором языков программирования.

Давайте посмотрим на примере Rust и C# как авторы решают эту неоднозначную проблему.

Читать далее
Всего голосов 21: ↑18 и ↓3+21
Комментарии16

В стране потоков — Кафка, часть 2: Поднимаем consumer’ы

Время на прочтение6 мин
Количество просмотров8K

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

Цель этой части — охватить следующее:

1.Как работает сторона consumer;

2.Как работает масштабирование групп consumerей;

3.Как работает масштабирование с помощью параллельного consumer’а;

4.Настройка, позволяющая избежать медленных consumer’ов.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

Как разработать Telegram-бота для генерации сложных паролей

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров13K

Чтобы придумать надежный, но запоминающийся пароль, можно взять несколько слов и объединить их в последовательность, напоминающую сюжет. А после — отформатировать и добавить специальные символы. Все просто, но задачу можно автоматизировать — написать Telegram-бота, который будет генерировать пароли прямо в мессенджере. В статье рассказываем, как это сделать.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+49
Комментарии31

ТОП горячих клавиш VS Code для начинающего джуна

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров162K

«Поговорим не про Vim», олдам, сеньорам и тру-си-разработчикам на проверку: пользуетесь ли вы такими сочетаниями VS Code? Если же вы только начинаете программировать, влетаете в айти на реактивном самолете курсов по Питону, или просто не знаете ничего про хоткеи VS Code, возможно вам точно пригодится парочка сочетаний :)

Читать далее
Всего голосов 26: ↑16 и ↓10+11
Комментарии30

Сказ о том как pet-project превратился в небольшой пассивный доход (часть 1)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров41K

Я backend разработчик с опытом около 3-х лет, пишу в основном на Golang. Проработал в нескольких крупных российских компаниях. Сейчас я параллельно со своей работой пытаюсь сделать удобный, дешевый VPN сервис с высокой пропускной способностью. В этой статье я хочу просто рассказать про жизненный цикл своего проекта. Возможно кому-то будет просто интересно почитать, а кто-то может почерпнуть что-то новое для себя.

Читать далее
Всего голосов 47: ↑44 и ↓3+49
Комментарии40

Spring Security и архитектура наследования ролей в не плоской модели

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров15K

Когда речь заходит об авторизации, роли вступают в игру. Если модель плоская, то все просто. Пользователь обладает определенным набором привелегий и при запросе достаточно лишь проверить, что нужное право доступа присутствует в коллекции. Но как быть, если у пользователя могут быть разные наборы ролей для разных сущностей? Например, я обладаю ролью EDITOR в посте в социальной сети, но имею только VIEWER в другом. Также могут быть определены правила наследования. Если админ выдает дает мне роль EDITOR, то я автоматически приобретаю привилегию VIEWER. При этом, если я EDITOR, роль ADMIN у меня не появляется.

Как увязать все эти детали в коде и при этом не превратить продукт в большую кучу грязи? В рамках этой статьи я расскажу вам:

1. Как реализовать наследование ролей в Java?

2. Как протестировать полученную иерархию?

3. Как применить решение в рамках Spring Security?

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Как изменять строки в dotnet

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров12K

Строки в dotnet являются предназначенной только для чтения последовательностью Char-ов. Об этом явно написано в документации Microsoft, посвященной строкам. Там же в секции "Неизменность строк" сказано следующее: "Может показаться, что все методы String и операторы C# изменяют строку, но в действительности они возвращают результаты в новый строковый объект". Согласно документации, изменить строки нельзя, но жизнь не всегда согласуется с документацией, поэтому предлагаю взглянуть на способы, позволяющие изменять строки в dotnet (к тому же это иногда спрашивают на собеседованиях!).

Читать далее
Всего голосов 22: ↑20 и ↓2+24
Комментарии21

Простой лайфхак для ввода символа "#" в русской раскладке клавиатуры под Linux

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров25K

знак решетки


Давно полюбил формат Markdown за простоту и легкость его использования при документировании исходного кода и за возможность его применения при оформлении статей для Хабра. Потом добавился Obsidian для ведения заметок. И формат Markdown стал по сути основным способом форматирования набираемого текста.


Единственной, но весьма большой ложкой дегтя, оставалась проблема ввода символа решетки «#» при использовании русской клавиатуры. А так как знак решётки (октото́рп, хеш, знак номера, дие́з, sharp), в русской раскладке клавиатуры отсутствует, то каждый раз переключаться на английскую раскладку, меня немного утомляло. И «немного утомляло» еще мягко сказано, так как символ решетки, кроме указания заголовков в Markdown и тегов в Obsidian, еще часто используется как начало комментария до конца строки (в Bash, Python, NewLang).


А так как предлагаемые на просторах интернета способы ввода символа решетки в русской раскладке клавиатуры меня совсем не вдохновляли (и если Alt+35 на Numpad под виндой еще сойдет, но этот способ не работает под Linux, а занимать буфер обмена ради вставки одного символа, вообще не вариант), то пришлось потратить некоторое время на эксперименты, результатами которых я и хочу поделиться.

Простой лайфак ввода # в русской раскладке под Linux
Всего голосов 24: ↑16 и ↓8+11
Комментарии45

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
От 500 $
Git
C#
.NET Core
.NET
OOP
English