Pull to refresh
0
0
Send message

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

Level of difficultyMedium
Reading time9 min
Views12K

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

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

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

Читать далее
Total votes 38: ↑27 and ↓11+24
Comments171

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

Reading time3 min
Views34K

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

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

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

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

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

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

Reading time10 min
Views4.2K

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

Читать далее
Total votes 12: ↑9 and ↓3+7
Comments12

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

Level of difficultyMedium
Reading time9 min
Views15K

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

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

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

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

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

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

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

Level of difficultyEasy
Reading time7 min
Views66K

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

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

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

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

Level of difficultyEasy
Reading time8 min
Views24K

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

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

Читать далее
Total votes 19: ↑7 and ↓12-3
Comments4

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

Reading time7 min
Views25K

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

Возраст.

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

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

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

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

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

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

Читать далее и подробнее
Total votes 20: ↑8 and ↓12-2
Comments71

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

Level of difficultyMedium
Reading time15 min
Views13K
image

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

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

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

Level of difficultyEasy
Reading time5 min
Views15K

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

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

Читать далее
Total votes 18: ↑2 and ↓16-14
Comments29

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

Level of difficultyEasy
Reading time17 min
Views32K

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

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

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

Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments7

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

Level of difficultyEasy
Reading time11 min
Views13K


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


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


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

Читать дальше →
Total votes 10: ↑9 and ↓1+10
Comments10

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

Level of difficultyEasy
Reading time7 min
Views4.9K

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

Поехали
Total votes 2: ↑2 and ↓0+2
Comments0

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

Level of difficultyMedium
Reading time3 min
Views10K

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

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

Читать далее
Total votes 21: ↑18 and ↓3+21
Comments16

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

Reading time6 min
Views8.3K

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

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

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

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

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

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

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

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

Level of difficultyEasy
Reading time7 min
Views13K

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

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

Level of difficultyEasy
Reading time3 min
Views171K

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

Читать далее
Total votes 26: ↑16 and ↓10+11
Comments30

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

Level of difficultyEasy
Reading time5 min
Views41K

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

Читать далее
Total votes 47: ↑44 and ↓3+49
Comments40

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

Level of difficultyMedium
Reading time18 min
Views16K

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

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

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

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

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

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

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

Level of difficultyMedium
Reading time4 min
Views12K

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

Читать далее
Total votes 22: ↑20 and ↓2+24
Comments21

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

Level of difficultyEasy
Reading time2 min
Views27K

знак решетки


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


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


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

Простой лайфак ввода # в русской раскладке под Linux
Total votes 24: ↑16 and ↓8+11
Comments45

Information

Rating
Does not participate
Registered
Activity

Specialization

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