«Математика — это язык, на котором написана книга природы»(Г. Галилей)— это лишь малая часть суждений, показывающая разнородность представлений о математике. Помимо вопроса определения математики, интересными и дискуссионными являются вопросы о её природе(основаниях), её методологии, целях и связи с реальным миром. Ответы на них также неоднозначны и значительно изменялись со временем, создавая различные философские течения.
«Математика – это наука о необходимых заключениях»(Б. Пирс)
«Математика – это строгий язык, служащий для перехода от одних опытных суждений, к другим»(Н. Бор)
«Математика – это иерархия формальных структур»(Н. Бурбаки)
«Математика — это наука о количественных отношениях и пространственных формах действительного мира»(А. Колмогоров)
some kind of a crab.
Новая редакция популярного бесплатного учебника электроники, архитектуры компьютера и низкоуровневого программирования
Книжка содержит «введение во все», доступное способному школьнику или младшему студенту, который после ее прочтения может спроектировать, написать на SystemVerilog или VHDL и реализовать на ПЛИС несложный, но при этом совершенно настоящий конвейерный процессор. Книга написана живым языком и для введения концепций, например конечных автоматов, использует примеры типа:
Теория вычислений. Введение в конечные автоматы
Конечные автоматы (finite-state machine)
Это до предела упрощенная модель компьютера имеющая конечное число состояний, которая жертвует всеми особенностями компьютеров такие как ОЗУ, постоянная память, устройства ввода-вывода и процессорными ядрами в обмен на простоту понимания, удобство рассуждения и легкость программной или аппаратной реализации.
С помощью КА можно реализовать такие вещи как, регулярные выражения, лексический анализатор, ИИ в играх и тд.
У конечных автоматов имеется таблица переходов, текущее состояние автомата, стартовое состояние и заключительное состояние.
Таблица переходов — В ней хранятся переходы для текущего состояния и входного символа. Простейшая реализация может быть как двумерный массив.
- По горизонтали вверху находятся возможные входные символы.
- По вертикали слева находятся текущие возможные состояния.
Здесь видно, что из состояния 0 в состояние 1 можно попасть только, если у нас будет входной символ 'a', из состояния 1 в состояние 2, если символ 'b'.
Текущее состояние — множество состояний в котором автомат может находиться в данный момент времени.
Стартовое состояние — состояние откуда КА начинает свою работу.
Заключительное состояние — множество состояний в которых автомат принимает определенную цепочку символов, в ином случае отвергает.
Учёные создали графеновый транзистор с частотой работы 427 ГГц
За последние пять десятков лет развитие кремниевой электроники во многом происходит благодаря уменьшению отдельных компонентов на кристалле. Однако, всему есть свои пределы, и эксперты считают, что подобное продлится не далее 2026 года. Учёные всего мира находятся в активном поиске материала, способного заменить кремний, и часто взоры обращаются на графен.
В полупроводниках, используемых в транзисторах, существуют, как и в любых твёрдых материалах, зона энергии, в которой электроны могут свободно течь, что делает их проводником и «открывает» их, и зона, в которой их движение невозможно, что вызывает «закрытие». Для открытия и перехода в состояние зоны проводимости требуется относительно малое количество энергии. Именно эти свойства определяют принципы и характеристики полупроводниковых транзисторов. Однако, отсутствие у графена запрещенной зоны серьёзно ограничивает его использование в качестве транзистора: у графена нет областей энергии, которыми не может обладать электрон в кристалле. На практике это означает невозможность «отключить» графеновый транзистор.
Макросы для питониста. Доклад Яндекса
— Привет, ребята. Хочу в первую очередь поблагодарить организаторов PyCon. Я разработчик в Яндексе. Доклад будет совсем не про работу, а про экспериментальные вещи. Возможно, кого-то из вас они наведут на мысль, что в Python можно делать клевые штуки, о которых вы раньше даже не догадывались, не мыслили в эту сторону.
Обработка ошибок в Rust
Как и многие языки программирования, Rust призывает разработчика определенным способом обрабатывать ошибки. Вообще, существует два общих подхода обработки ошибок: с помощью исключений и через возвращаемые значения. И Rust предпочитает возвращаемые значения.
В этой статье мы намерены подробно изложить работу с ошибками в Rust. Более того, мы попробуем раз за разом погружаться в обработку ошибок с различных сторон, так что под конец у вас будет уверенное практическое представление о том, как все это сходится воедино.
В наивной реализации обработка ошибок в Rust может выглядеть многословной и раздражающей. Мы рассмотрим основные камни преткновения, а также продемонстрируем, как сделать обработку ошибок лаконичной и удобной, пользуясь стандартной библиотекой.
Rust и парадокс Блаба
Несколько недель назад я наткнулся на сравнительный анализ Rust, D и Go от Андрея Александреску. Андрей, уважаемый член сообщества C++ и главный разработчик языка программирования D, нанес Rust сокрушительный удар под конец своего повествования, высказав нечто, что выглядит довольно проницательным наблюдением:
Чтение кода на Rust навевает шутки о том, как «друзья не позволяют друзьям пропускать день ног» и вызывает в голове комические образы мужчин с халкообразным торсом, балансирующим на тощих ногах. Rust ставит во главу угла безопасность и ювелирное обращение с памятью. В действительности, это довольно редко является настоящий проблемой, и такой подход превращает процесс мышления и написания кода в монотонный и скучный процесс.
После нескольких встреч с Андреем, увидев некоторые из его выступлений, я убедился, что он любит подшучивать. Тем не менее, давайте проглотим наживку. Эта шутка смешная только потому, что она выглядит смешной, или может быть потому, что в ней только доля шутки?
Несколько подводных камней статической типизации в Python
Думаю, мы все потихоньку уже привыкаем, что у Python есть аннотации типов: их завезли два релиза назад (3.5) в аннотации функций и методов (PEP 484), и в прошлом релизе (3.6) к переменным (PEP 526).
Так как оба этих PEP были вдохновлены MyPy, расскажу, какие житейские радости и когнитивные диссонансы подстерегали меня при использовании этого статического анализатора, равно как и системы типизации в целом.
Disclamer: я не поднимаю вопрос о необходимости или вредности статической типизациии в Python. Просто рассказываю о подводных камнях, на которые натолкнулся в процессе работы в статически-типизированном контексте.
Как «научиться учиться» — советы, рекомендации и научные исследования
Часть 1. «Очевидные» советы
Большинство рекомендаций для желающих учиться лучше выглядит довольно банально: помимо посещения лекций и выполнения домашних заданий важно правильно питаться, вести здоровый образ жизни, высыпаться, и следить за режимом дня.
Все это, безусловно, хорошо, но чем конкретно эти прописные истины могут помочь студенту? Как организовать режим дня так, чтобы больше успевать и лучше запоминать материал? Есть ли реальная связь между чувством жажды и когнитивными способностями? Правда ли, что спорт помогает в учебе (и речь не только о дополнительных баллах к ЕГЭ за значок ГТО)?
Попробуем разобраться со всем ниже.
Евгений Варавва, разработчик в Google. Как описать Google в 5 словах
Можно ли описать Google в нескольких словах? Компанию, в которой сотни подразделений, порой настолько экспериментальных, что вплотную приближаются к научной фантастике. Компанию, в которой работают сотни тысяч человек по всему миру.
Наверное, Google — для каждого свой. Для каждого наблюдателя — сотрудника, независимого разработчика и админа, конкурента, просто человека интересующегося IT-тематикой, пользователя в сети, вбивающего в адресную строку браузера google.com.
Я познакомился c Евгением Вараввой, разработчиком широкого профиля в Google (Сан-Франциско), на Слёрме SRE — он там вовсю с удовольствием запутывал участников задачками, неожиданными багами и проблемами учебного проекта.
А после, когда начали расставлять столы, усталые участники прощаться друг с другом, сотрудники Слёрма убирали провода, роутеры и сетевые удлинители, я пригласил Евгения поговорить — каким он видит Google. Изнутри. И изменилась ли его ощущение и точка зрения за десяток лет работы в компании.
Что получилось — читайте…
Пиши, не сокращай. Чего мне стало не хватать в публикациях Хабра
Факты. Цифры. И без эмоций.
«Информационный» стиль, прилизанный и гладкий, накрыл технические порталы с головой.
Привет постмодерн, теперь наш автор мертв. Уже взаправду.
Язык программирования Zig
Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на нишу C++, D и Rust. Посмотрел — язык показался симпатичным и в чем-то интересным. Приятный си-подобный синтаксис, оригинальный подход к обработке ошибок, встроенные сопрограммы. Данная статья является кратким обзором официальной документации с вкраплениями собственных мыслей и впечатлений от запуска примеров кода.
Как развивались комментарии к коду с 1940-х до 2020 года
Ну а что там еще можно улучшить или придумать — спросите вы. Давайте поразмышляем на эту тему — можно ли как-то улучшить наш опыт взаимодействия с таким важным но так часто игнорируемым аспектом программирования как документация в коде, или по-простому комментарии.
Мой подход по управлению временем/задачами используя VSCode
Вот и наступил 2020 год. И как всегда в начале года мы ставим себе амбициозные цели на год, обещаем заняться планированием, стать лучше и т.п. Мы начинаем использовать новый крутой сервис по управлению временем и задачами, о котором прочитали накануне. Но проходит пару недель или пару месяцев, мы разочаровываемся в сервисе, забрасываем планирование и управление задачами. А ведь управление временем/задачами входит в семь навыков высокоэффективных людей, какими мы все хотели бы быть.
Так происходило и со мной: на протяжении последних десяти лет я пробовал различные сервисы и программы по управлению временем/задачами, читал море статей по этой теме, но всё как-то не мог найти свой идеальный подход до последнего времени. Последние пару лет я пришел к тому, что начал использовать Visual Studio Code (VSCode) и расширение Org Mode для управления временем и задачами. В этой статье я расскажу, как я это делаю. Не скажу, что я стал супер высокоэффективным, но эффект чувствуется.
Пишем драйвер для ноутбука for fun and profit, или как закоммитить в ядро даже если ты дурак
С чего всё началось
Начнём с постановки проблемы. Дано: один ноутбук. Новый ноутбук, геймерский. С RGB-подсветкой. Вот такой примерно ноутбук:
Картинка взята с lenovo.com
Есть ещё программа к этому ноутбуку. Программа как раз этой подсветкой и управляет.
Одна только проблема – программа под Windows, а хочется чтоб в любимом линуксе всё работало. И лампочки чтоб светились, и чтоб цвета красивые мелькали. Да вот только как это сделать, чтоб без реверс-инжиниринга и без написания своих драйверов? Простой ответ пришёл быстро – никак. Ну что ж, пошли писать драйвер.
32 января
Часть 1
Праздничное настроение отгудело. Астрономы занялись обычной работой.
13 января 2020 года мимо Земли пролетает огромное космическое тело размером с Нептун. Что это было так никто и не понял, потому что появилось и исчезло космическое тело ровно из ниоткуда. Уфологи, физики и астрономы долго спорили о природе возникшего явления. Уфологи выдвигали идеи о том, что некий космический корабль пришельцев совершил гиперпрыжок в пространство возле Земли, понял, что промахнулся и лететь нужно дальше и провёл гиперпрыжок снова. В пользу этой теории говорили записи с некоторых устройств, записывающих радиоэфир. Физики и астрономы пытались оспорить мнение, указывая на сильные пульсации, зафиксированные приборами. К тому же, корабли подобного размера построить просто немыслимо. С Земли его видно не было. Фотографий из космоса сделать никто не смог. Да и вряд ли бы успел. Тело возле Земли появилось всего на 10 минут. Приборы конечно отработали мгновенно, но вот люди не сразу сообразили что происходит и куда смотреть. Обозвали странное тело "Чеширским котом".
Боевой арсенал Erlang разработчика
В данной публикации я хотел описать свой опыт перехода с корпоративного Java на Erlang.
Погружения в Erlang в первом приближении
С недавнего времени начал замечать, что у большего числа людей просыпается интерес к функциональному программированию. Многих в это направление разработки приводит чисто академический интерес, некоторые пытаются решать задачи более подходящими средствами, а другие просто сталкиваются с этим на новых проектах.
После довольно продолжительного времени Java/Python разработки, я решил кардинально изменить сферу деятельность и открыл для себя Erlang.
Я в одиночку отрефакторил 15 тысяч строк легаси. Это были худшие две недели в жизни
Несколько месяцев назад я работал в аутстафе. Это не то место, где нужен энтузиазм и вера в великую цель проекта. Меня вместе с командой просто продавали заказчикам, а на митингах было важно, сколько тикетов я закрыл. Приступы перфекционизма — скорее вредная штука для такого места, но я ничего не мог с ними сделать. За один из них я знатно поплатился, попал в адский кранч и провел худшие две недели в моей жизни.
Нетоксичное лицемерие
Я немного утомлен частотой ее появления в жизни. Трудно выразить мнение так, чтобы не вляпаться в очередную попытку выяснить, было ли грубым сказанное.
Борьба Firefox за будущее веба
В ситуации, когда Google со своим Chrome доминирует на рынке, его некоммерческий конкурент Mozilla делает ставку на успешное возвращение с упором на конфиденциальность
Как вы выбираете браузер? Возможно, вам кажется, что ваш браузер быстрее грузит страницы. Возможно, его сделали в той же компании, что и ваше устройство, и вы считаете, что он как-то больше совместим с ним. Возможно, вам нравится внешний вид, или он просто был заранее установлен на вашем компьютере. Возможно, вы даже не знаете, что можете выбирать.
В реальности две трети пользователей перешли на Google’s Chrome, однако в вопросе выбора браузера есть такой момент, как открытость сети и то, какие данные о пользователях он собирает. Подобные вопросы на передний план всегда выставляла такая организация, как Mozilla.
Information
- Rating
- Does not participate
- Location
- Россия
- Registered
- Activity