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

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

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

Rust без прикрас: где мы ошибаемся

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

Привет, исследователи Rust! Сегодня хочу поделиться своим опытом (не всегда радужным) работы с Rust. Да, язык классный, безопасный, быстрый — все мы это знаем. Но, как и в любом инструменте, здесь есть свои подводные камни, на которые я благополучно наступал.

Читать далее
Всего голосов 37: ↑32 и ↓5+39
Комментарии38

Языки программирования, взорвавшие мой мозг

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

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

Я перечислю их в том порядке, в котором узнавал о них. В большинстве случаев я буду ассоциировать функциональность с языками, в которых они появились не впервые. Это не ошибка, я просто хочу показать, когда узнал об этих возможностях.
Читать дальше →
Всего голосов 70: ↑59 и ↓11+67
Комментарии101

Регулярные выражения в SQL

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

Привет, Хабр!

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

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

Youtube разблокировали, но не у всех. Как решить проблему?

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

image


Эпопея с блокировками сервиса продолжается, что происходит сейчас? С 20 по 23 сентября пользователи разных провайдеров заявили, что у них появился доступ до видеохостинга без использования средств обхода ограничений. Чтобы объективно оценить реальное состояние доступа к видеохостингу и блокировок у разных провайдеров, воспользуемся сервисом мониторинга

Читать дальше →
Всего голосов 39: ↑35 и ↓4+44
Комментарии90

Пара тупых ответов про эволюцию

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


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

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

Крыло работает только тогда, когда целое. Половина крыла не даёт оторваться от земли.

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

Ну или вот хвост павлина. Как можно развить такую длинную бесполезную штуку, которая люто нравится хищникам? Разве не должны были выжившие павлины стать ловкими и короткохвостыми?

Свои ответы я получил уже довольно поздно, но помню, как был рад их услышать. И наблюдая за идущим сейчас холиваром про теорию Дарвина, вижу много людей, которые задают те же самые вопросы.
Читать дальше →
Всего голосов 283: ↑280 и ↓3+341
Комментарии633

Ассемблер для программистов на языках высокого уровня: Hello World

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

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →
Всего голосов 61: ↑57 и ↓4+69
Комментарии41

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

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

Список неочевидных, но при этом полезных хаков, которые позволят использовать отладчик вашего браузера1 более полноценно. Для понимания материала статьи потребуется как минимум средний уровень владения инструментами разработчика.
Читать дальше →
Всего голосов 72: ↑71 и ↓1+96
Комментарии12

Доктора Кнут, Моррис и Пратт, или Как я перестал бояться и полюбил префикс-функцию

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

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

Я прошел через череду осознаний и озарений, прежде чем достичь просветления, и теперь предлагаю вам пройти этот путь вместе со мной.

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

Решаем загадку Джиндоша из Dishonored 2 на SQL перебором с возвратом

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


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

Сегодня мы рассмотрим решение непростой загадки Джиндоша из замечательной игры Dishonored 2 с помощью SQL.
SQL Может Многое!
Всего голосов 71: ↑71 и ↓0+91
Комментарии38

Вычислительные выражения: Добавляем ленивость

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров819

Скотт Влащин продолжает рассказ о вычислительных выражениях в F#.

Сегодня мы узнаем, как создавать ленивые вычислительные выражения.

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

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

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

Недавно в комментариях к тексту про построение личной базы знаний на Хабре читатель отметил, что в таких статьях не хватает примеров работы с техническими данными. Давайте это исправим. Мы спросили у инженеров YADRO и технарей из сообщества «Цеттелькастен и Персональные базы знаний», как и для чего они ведут свои заметки.  Герои статьи используют Obsidian и Emacs, а также личные Telegram-каналы, чтобы изучать новые языки программирования, проходить технические собеседования и вести рабочие записи.

Для тех, кто пока не знаком с методом социолога Никласа Лумана, в начале статьи рассказали об истории Цеттелькастена и показали, как выглядело хранилище данных полвека назад. Короб с ящиками и карточками стал прототипом современных систем для ведения заметок, которыми пользуются инженеры. 

Читать далее
Всего голосов 45: ↑42 и ↓3+55
Комментарии37

«По вертикали и по горизонтали»: как перенести бумажные сканворды в онлайн, чтобы решать с друзьями на удаленке

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

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

Как оцифровать сканворд по фотографии? Насколько сложно сделать систему общего доступа? Действительно ли интересно разгадывать бумажные сканворды на электронном устройстве? Ответы на эти и другие вопросы — под катом.
Читать дальше →
Всего голосов 71: ↑71 и ↓0+89
Комментарии9

Почти все, что вы хотели бы знать про Docker

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

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

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

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

По дороге из желтого кирпича — что скрывается за сказкой о волшебной стране Оз?

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

«Удивительный волшебник из страны Оз» написан исключительно для удовольствия детей» — уверял Лаймен Фрэнк Баум в предисловии к первому изданию 1900 года. Спустя полвека после написания книги экономисты и историки открыли в ней политические и экономические аллегории. Но закладывал ли Баум в сказку тайные смыслы, и если да — то какие? А если нет — зачем он подчеркивал, что «Волшебник» всего лишь детская книга?

Читать далее
Всего голосов 22: ↑17 и ↓5+16
Комментарии31

Чем новый ChatGPT-4o отличается от GPT-4, что умеет и почему это супер-важно

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

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

Читать далее
Всего голосов 25: ↑14 и ↓11+9
Комментарии120

Отображение иерархии в SQL запросе

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

В процессе тестирования одного курса по SQL на stepik.org встретилась задача, из которой сочинилась другая, более интересная:

Необходимо с помощью одного SQL запроса с использованием обобщенных табличных выражений отобразить иерархию, в соответствии с иллюстрацией выше

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

Анатомия Hello World на языке C

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

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Всего голосов 125: ↑125 и ↓0+142
Комментарии47

Привычка быть SOLIDным разработчиком

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

Привет, Хабр! Меня зовут Грант, я уже 5 лет занимаюсь backend-разработкой в SimbirSoft, а с 2021 года возглавляю Backend-отдел компании в Краснодаре. В последние несколько лет неоднократно замечаю, что на входном интервью соискатели часто путают принципы разработки. Поэтому в этой статье решил разобрать, как проще их понимать, какие связи между ними прослеживаются, стоит ли учить все или что-то можно пропустить. А еще попробую раскрыть некоторые особенности, какие секреты скрывают популярные принципы разработки.

Погрузиться 👀
Всего голосов 15: ↑12 и ↓3+11
Комментарии5

Повесть о стрелке и запятой

Время на прочтение6 мин
Количество просмотров8.4K
В этой статье мы:

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

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


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

Метаболизм и долголетие. Личный опыт

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

Этот текст - логическое продолжение описания моего инженерного подхода в вопросе долголетия. Если вы не читали предыдущую статью, то рекомендую ознакомиться. Текущая же статья потребует 10 минут вашего внимания, но может добавить 10 лет к вашей жизни (но может и не добавить 😁).

Упрощённо говоря, моя идея (о которой можно ознакомиться по ссылке выше) состоит в том, чтобы:

1. выделить наиболее вероятные проблемы со здоровьем, которые "помогут" откинуться
2. предпринять адекватные усилия, которые помогут их предотвратить

Читать далее
Всего голосов 55: ↑51 и ↓4+57
Комментарии75

Информация

В рейтинге
1 479-й
Зарегистрирован
Активность