Pull to refresh
3
0.1
Send message

Книги, по которым мы в детстве учили программирование и будем учить детей

Reading time3 min
Views94K


Когда я зашел в гости к Робокурс (они учат ребятишек 7-13 лет программированию и робототехнике), то увидел коллекцию раритетных книжек по программированию и вспомнил былое, 286-е без жесткого диска, BASIC из оперативки и прочее.

Я был в восьмом и от одноклассника узнал, что есть «Краевая станция юнных техников» (КСЮТ), где помимо выпиливания лобзиком кордовых авиамоделей есть и инновационный кабинет по программированию. Записался туда. Там были и первые сетевые баталии в NETWARS, и первая порнокартинка, и война за пароль главного администратора. Адекватных книг практически на было, особенно по горячо любимому мной бейсику (только «Программышка» и еще одна розовенькая книга, откуда я узнал, что такое массив и что с ним можно делать).

Хочу спросить хабрачитателей, по каким книжкам они делали первые шаги в программировании.

Под катом кратенький обзор одной современной и нескольких олдскульных советских книжек по робототехнике и программированию для детей из коллекции преподавателей. (Бонус — обзор манги по электричеству.) А в комментах — ваши первые книги.
Читать дальше →
Total votes 36: ↑30 and ↓6+24
Comments69

Оценка токопотребления батарейных радиоканальных устройств

Level of difficultyMedium
Reading time8 min
Views963

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

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

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

Boson — разработка СУБД «с нуля» (итог)

Level of difficultyMedium
Reading time11 min
Views2.6K

Цель проекта Boson — это разработка встроенного движка базы данных документов JSON, написанный на C++. Основные возможности: стандартное хранилище JSON-документов в формате ключ/значениями с постоянным хранением на диске. Размер документов до 4Gb. Быстрый поиск документов по ID с использованием индекса B+ дерева. Поддержка курсоров для линейного обхода записей. База данных в одном файле, без временных файлов. Простое, чистое и легкое в использовании API. Самодостаточный и не требующий настройки.

В предыдущих двух статьях мы прошли шаги от кэширования файлового ввода/вода (часть I) до построенного на его базе хранилища записей произвольной длины (часть II) с проверкой целостности, возможностью получения записей списком и повторным использованием свободного места. Теперь мы переходим к завершающей части и "сердцу" СУБД - индексу.

Зачем нужен индекс: предположим, что в базе есть 1 млрд не отсортированных записей документов, тогда поиск конкретного документа по ID потребует O(n) операций, то есть до 1 млрд операций в худшем случае. Однако, если бы документы в базе были бы отсортированы по ID, то поиск в сортированной базе, тем же бинарным поиском занял бы O(log n) занял бы 30 операций. Что, теоретически, на базе в 1 млрд записей будет в 33.3 млн раз быстрее.

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

Сдохни или умри: мой опыт создания проекта от идеи до релиза

Reading time10 min
Views1.7K

За семь лет в IT я повидал многое: и большие задачи, и экстренные багфиксы ночью, и не совсем понятные требования от бизнеса, но всегда это были готовые проекты с уже выстроенной архитектурой, где знаешь, что и как работает. Год назад, в конце августа, ко мне пришел знакомый и сказал примерно следующее: у меня есть команда, мы занимаемся P2P платежами, сейчас работаем с одной известной площадкой, но хотим сделать свой продукт, можешь с этим помочь?

Экспертизы в сфере P2P платежек у меня не было, поэтому первоначально пошел гуглить, что это вообще такое, где и как работает. После изучил схему, которую он мне прислал. В голове обрисовалась картинка как это можнно реализовать на практике, я ему рассказал свои мысли, сильные и слабые (на мой взгляд) стороны его идеи. После чего он выдал: а сделать сможешь? Деньги на реализацию есть, ТЗ — напишу, всё как полагается.

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

Читать далее
Total votes 12: ↑11 and ↓1+12
Comments2

Принцип цифрового управления непосредственным преобразователем напряжения

Reading time5 min
Views2.1K

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

К оригинальному принципу построения цифрового регулятора я пришёл без малого 20 лет назад. Принцип простой, как говорится, “лежит на поверхности”, позволяет получить отличное быстродействие, качество переходных процессов и отсутствие выбросов токов дросселя. Но вот, что интересно для меня, я нигде больше за эти 20 лет на практике не встретил данного подхода к построению регулятора по аналогичному принципу (плохо искал?).

Подразумевается, что читатель понимает: основы ТОЭ (теоретические основы электроцепей), принципы формирования ШИМ (широтно-импульсной модуляции).

Читать далее
Total votes 8: ↑7 and ↓1+10
Comments5

Апгрейд мобильного компьютера паяльником

Level of difficultyMedium
Reading time6 min
Views2.5K

Название статьи вдохновлено недавним материалом Сергея Долина об улучшении ретро-компьютера, что называется, паяльником. Недавно мне поступил заказ от читателя на апгрейд ОЗУ в легендарном карманном компьютере Dell Axim X51v, за выполнение которого я получил крутейший ноутбук 1998 года. Конечно же я не смог отказаться от такого предложения и подготовил для вас подробную статью с предысторией апгрейда памяти на КПК, описанием процесса снятия и установки BGA-чипов, замене концевого переключателя на перемычку, а также ремонта рычажка Hold, из-за которого некоторые Axim'ы теряли работоспособность при общей исправности железа девайса. Жду вас под катом!

Читать далее
Total votes 17: ↑14 and ↓3+19
Comments13

Исследование рынка .NET разработки: Анализ текущих тенденций и прогнозы

Level of difficultyEasy
Reading time15 min
Views3.5K

.NET остается одной из ведущих платформ для разработки корпоративных приложений, особенно в России, где она используется как в крупных корпорациях, так и в малом бизнесе. Но как на самом деле чувствует себя сообщество разработчиков? Для того чтобы понять это, мы решили опросить 300 российских .NET разработчиков и руководителей разработки. И вот что из этого получилось.

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

«Энциклопедия профессора Фортрана»: вспоминаем легендарную книгу из детства миллениалов

Level of difficultyEasy
Reading time15 min
Views4.5K

В самом начале 1990-х годов в Москве вышла книга о компьютерах, которая обрела огромную популярность среди детей «младшего школьного возраста» и не только. Как свидетельствуют многочисленные комментарии в сети к публикациям с её упоминаниями — её помнят и любят очень многие из тех, чьё детство пришлось на это время. Более того, немалое число из помнящих именно её страницы стали тем источником интереса и вдохновения, которые привели их к IT-специальностям. Книга называлась «Энциклопедия профессора Фортрана». Изначально она представляла собой научно-популярное приложение к сказке «А я был в компьютерном городе», но значительно превзошла её в популярности и вышла в качестве отдельного издания. С этого момента прошло уже почти 35 лет, но профессор Фортран и сотоварищи по-прежнему узнаваемы, любимы и используются для создания мемов разной степени упоротости. Давайте же вспомним оба текста, историю их создания, а также авторов и художников!
Читать дальше →
Total votes 53: ↑52 and ↓1+72
Comments30

Организация распределённого хранения файлов с помощью git-annex

Reading time14 min
Views9.9K

Разберем способ удобного хранения 35 000 файлов домашней коллекции, которая используется на 3 ПК и 2 телефонах с использованием git-annex.

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

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

Как мы в МТС создали библиотеку для работы с графовыми нейронными сетями

Reading time11 min
Views2.5K

Привет, Хабр! Меня зовут Диана Павликова, я работаю ML-инженером. Часто к нам приходят задачи, когда нужно повысить качество работы модели там, где обычными способами это сделать уже не получается. Мы решили применить что-то новое, поэтому обратились к теории графов и написали CoolGraph — open source библиотеку для работы с графовыми нейронными сетями. В этой статье я расскажу, как мы пришли к идее ее создания, как графы помогают улучшить результат, какую архитектуру мы выбрали и для каких задач подойдет этот инструмент. Все подробности — под катом. 

Читать далее
Total votes 14: ↑14 and ↓0+17
Comments2

Machine Learning в онлайн-кинотеатрах: как повысить время смотрения и понять, что одного ML мало. Часть 1

Reading time5 min
Views1.6K

Привет, Хабр. Меня зовут Алексей Жиряков, и я техлид backend-команды витрины онлайн-кинотеатра KION. Этот текст написан по мотивам моего выступления на МТС True Tech Day.

В KION мы формируем персональную витрину для каждого юзера в условиях достаточно высокой нагрузки: в пике более 600 запросов в секунду. Время ответа на запрос при этом минимально: около 160 мс. Конечно, мы используем Machine Learning (ML), но есть и другие инструменты — например, бизнес-правила, и их около 50. О различных нюансах работы KION в связке с ML и не только расскажу в двух постах. Сегодня обсудим работу витрин и полок KION, объясню, как мы строим персональную витрину, внедряем ML в баннерную полку и просчитываем тренды. Следующий пост будет про обучение нейронки и бизнес-правила. Жду вас под катом!

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

Простой и быстрый тест LLM для прототипа: сравниваем 16 open-source-моделей на запросе с разной температурой

Level of difficultyEasy
Reading time16 min
Views3.4K

Привет, Хабр! Меня зовут Дмитрий Фролов, я ведущий разработчик в Центре компетенций Data Science МТС Диджитал. С ростом популярности LLM создание на них прототипа может прилететь даже тем, кто напрямую с ML не связан. Допустим, вы работаете аналитиком, а ваше начальство резко захотело генератор текста или отчетов в стиле клиентского менеджера с open-source LLM под капотом. Скорее всего, в таких задачах вы ни в зуб ногой, а разбираться с api и токенами нет времени и желания.

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

Итак, велкам под кат, если вам интересно, как «на коленке» протестировать сразу шестнадцать LLM, какие результаты покажет тест и куда смотреть, если нужны более серьезные результаты.

Читать далее
Total votes 24: ↑23 and ↓1+31
Comments1

Делаем форму обратного звонка: лендинг, Go и SMS-уведомления

Reading time10 min
Views1.3K

Привет, Хабр! Меня зовут Екатерина Саяпина, я Product Owner личного кабинета платформы МТС Exolve. Сегодня расскажу, как создать простую, но эффективную форму обратного звонка с SMS-уведомлениями. Дам пример для сценария, когда клиент оставляет заявку через форму, а менеджер связывается с ним через Callback API. После успешного разговора система автоматически отправляет SMS через SMS API с подтверждением договоренностей и следующими шагами.

SMS-уведомления здесь играют роль надежного канала для закрепления результатов разговора и напоминания о договоренностях. Они не требуют интернета или установки приложений и работают везде, даже при слабом сигнале связи.

Причем пример будет без громоздких фреймворков — только Go и чистый HTML с щепоткой JavaScript.

Читать далее
Total votes 10: ↑9 and ↓1+16
Comments3

От мышей на экране до zip-бомбы: топ приложений-шуток из начала нулевых

Reading time5 min
Views6.2K

Всем привет! Это Антон Комаров, автор команды спецпроектов «МТС Диджитал». Пришла пора признаться: я скучаю по интернету начала нулевых. Тогда он был действительно забавным местом, где каждый мог найти себе развлечение по вкусу. Было круто посмеяться над очередным flash-выпуском приключений «подруги космических туристов», пообщаться с друзьями в IRC или ICQ или скачать какой-нибудь «ускоритель интернета», оказывающийся в итоге банальным вирусом.

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

Читать далее
Total votes 43: ↑43 and ↓0+59
Comments42

Как лидар помог обнаружить древние города: что ученые узнали о Шелковом пути

Reading time5 min
Views3.7K

Привет, жители Хабра! Это Даша Фролова из команды спецпроектов МТС Диджитал. Сегодня поговорим о древних городах — и не цифровых, а вполне реальных.

Лидарное сканирование помогло обнаружить средневековые города, скрытые в горах вдоль Шелкового пути. Оказалось, что в горах Тянь-Шаня, которые всегда считались препятствием для торговли, существовали процветающие города — их роль в международной торговле прошлых столетий все это время оставалась незамеченной. Один из таких городов — Тугунбулак — поражает масштабами и архитектурой. В период расцвета он занимал площадь в 120 гектаров. Для сравнения: площадь Сиены, одного из главных городов Италии той эпохи, составляла 105 га. Что еще известно о Тугунбулаке и какой город обнаружили еще, рассказываю ниже.

Читать далее
Total votes 11: ↑11 and ↓0+19
Comments12

Конспектируем Книгу Rust:: Владение

Reading time8 min
Views17K

Перед вами краткое профессиональное описание особенностей языка Rust для профессионалов.


Что это такое?
  • краткое — информации будет гораздо меньше, чем в Книге (The Rust Programming Language)
  • профессиональное — информации будет гораздо больше, чем в Книге;
  • описание особенностей — фокусируемся на отличиях Rust от других языков;
  • языка — описывается именно язык, а не установка средств разработки, управление пакетами и прочий инструментарий;
  • для профессионалов — подразумевается, что читатель имеет существенный опыт в разработке ПО.

Чего здесь НЕ будет


  • Не будет агитации за Rust
  • Не будет легко. Для освоения потребуется неделя-другая вдумчивого чтения по часу в день, с тщательным разбором примеров, как-то так

Содержание


Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments7

Rust: безопасность памяти без потерь в скорости

Reading time8 min
Views888

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

Читать далее
Total votes 15: ↑9 and ↓6+6
Comments3

Записываем PNG без мам, пап и внешних библиотек

Reading time9 min
Views12K

Я решал очередную техническую задачу и столкнулся с проблемой: нужно сохранять изображения, а у меня нет сериализаторов и я не могу использовать готовые библиотеки. Ситуацию ухудшает, что из доступных форматов только PNG, JPEG и WebP. Выбор пал на PNG.

Формат изображения PNG известен с 1996 года, а на Хабре опубликовано несколько статей о декодировании этого формата. И ни одной — о кодировании. Я расскажу, как сохранить PNG своими руками на случай, если вам тоже придется это делать. Например, в академических целях.

Под катом вас ждет подробный разбор каждого байта на множестве иллюстраций.
Читать дальше →
Total votes 94: ↑94 and ↓0+118
Comments18

Я прождал 10 миллиардов тактов и дождался лишь экрана загрузки

Level of difficultyEasy
Reading time7 min
Views13K

Современное оборудование невероятно быстрое. M1 Max, на котором я пишу эту статью, работает с частотой 3,2 ГГц. То есть 3,2 МИЛЛИАРДА тактов в секунду. Однако Microsoft Teams требуется 3 секунды, чтобы открыть ссылку, и я отказываюсь верить, что для открытия ссылки требуется 9,6 МИЛЛИАРДА тактов. Очевидно, я упрощаю, но смысл остаётся прежним: как так получается, что оборудование становится быстрее, а приложения — только медленнее?

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

Превосходный пример мощи современного «железа» — это видеоигры. Я могу симулировать огромные 3D-среды с физикой и освещением, полученным трассировкой лучей, при этом играть в реальном времени с друзьями из других штатов и даже стран; вполне доступный компьютер потребительского уровня выдаёт 124 миллионов пикселей в секунду1.

[1. 1080p при 60 FPS = 1920 × 1080 × 60 = 124416000]

Можно посмотреть и в обратном направлении: людям удаётся запускать DOOM на почти любом устройстве с процессором: на калькуляторах, iPod, фотокамерах. Невероятно маломощные, зачастую одноразовые устройства обладают достаточными вычислительными ресурсами, чтобы выполнять сверхсовременную на 1993 год игру. Это не особо удивляет, ведь прошло три десятка лет, но показывает, какой путь мы проделали.

Читать далее
Total votes 61: ↑57 and ↓4+73
Comments39
1
23 ...

Information

Rating
3,389-th
Registered
Activity