Search
Write a publication
Pull to refresh
297
0.2
Дмитрий Кашицын @Halt

Программист, линуксоид, паяльник-железячник

Send message

Начинать программировать никогда не рано: взгляд девятилетнего

Reading time3 min
Views69K
На днях мне исполнилось 9 лет. Через неделю я пойду в третий класс. И в нем до сих пор нет информатики. Это большой недостаток школьной программы.


Читать дальше →

Научно-технические мифы, часть 1. Почему летают самолеты?

Reading time13 min
Views162K
В современном мире многие люди интересуются наукой и техникой и пытаются хотя бы в общих чертах понять, как работают вещи, которые их окружают. Благодаря этому стремлению к просвещению существует научно-просветительская литература и сайты, подобные Гиктаймсу. А поскольку читать и воспринимать ряды формул большинству людей затруднительно, то излагаемые в подобных изданиях теории неизбежно подвергаются значительному упрощению в попытке донести до читателя «суть» идеи с помощью простого и понятного объяснения которое легко воспринять и запомнить. К сожалению, некоторые из подобных «простых объяснений» являются в корне неверными, но при этом оказываются настолько «очевидными», что не подвергаясь особому сомнению начинают кочевать из одного издания в другое и нередко становятся доминирующей точкой зрения, несмотря на свою ошибочность.

В качестве одного из примеров попробуйте ответить на простой вопрос: «откуда возникает подъемная сила в крыле самолета»?



Если в Вашем объяснении фигурируют «разная длина верхней и нижней поверхности крыла», «разная скорость потока воздуха на верхней и нижней кромках крыла» и «закон Бернулли», то я вынужден Вам сообщить, что Вы скорее всего стали жертвой популярнейшего мифа, который преподают порою даже в школьной программе.
То есть это как это миф? Ведь там же все внятно и с доказательствами объясняется!

Логика сознания. Вступление

Reading time8 min
Views113K
image В свое время на Хабре был опубликован цикл статей «Логика мышления». С тех пор прошло два года. За это время удалось сильно продвинуться вперед в понимании того, как работает мозг и получить интересные результаты моделирования. В новом цикле «Логика сознания» я опишу текущее состоянии наших исследований, ну а попутно попытаюсь рассказать о теориях и моделях интересных для тех, кто хочет разобраться в биологии естественного мозга и понять принципы построения искусственного интеллекта.

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

Ситуация, связанная с изучением мозга, особенная для науки. Во всех остальных областях естествознания есть базовые теории. Они составляют фундамент на котором строятся все последующие рассуждения. И только в нейронауке до сих пор нет ни одной теории, которая хоть как-то объясняла, как в нейронных структурах мозга протекают информационные процессы. При этом накоплен огромный объем знаний о физиологии мозга. Получены очень обнадеживающие результаты с помощью искусственных нейронных сетей. Но перекинуть мостик от одного к другому, пока, не удается. То, что известно о биологических нейронных сетях очень плохо соотносится с созданными на сегодня архитектурами искусственных нейронных сетей.

Не должна вводить в заблуждение распространенная фраза о том, что многие идеи искусственных нейронных сетей позаимствованы из исследований реального мозга. Заимствование носит слишком общий характер. По большому счету, оно заканчивается на том, что и там и там есть нейроны и между этими нейронами есть связи.
Читать дальше →

Пора рассказать, как я 4 года был Билайном на Хабре — и что за это время узнал про Хабр

Reading time16 min
Views63K
Вчера был очередной семинар Хабра о том, как надо делать корпоративные блоги, и я там не выдержал и рассказал эту историю.



Конечно, это был не совсем я, но близко. Дело в том, что давным-давно мне предложили помочь Вымпелкому с блогом. На немного необычных условиях. Первым стало отсутствие всякой официальщины – отсюда и совершенно отрывные посты (за часть из которых в корпоративном сегменте смело оторвали бы руки и не только), и самые актуальные темы (Базовая станция вредная? Ещё как!), и вообще много всего.

Но начну с самого начала. Итак, Хабр тогда был торт — большой и зверски агрессивный, хабов не было, а корпоративные блоги были чем-то вроде раздела «тупиковый отстой». За любую ссылку или рекламу тогда почти банили. Или забивали до -50 за час, например. С корпоративным рылом в такой калашный ряд было никак нельзя.

И ещё – Билайн, как и любой сотовый оператор, имел тысячи людей, не очень довольных его существованием. Поэтому первый пункт стратегии был довольно необычным, и мало кто мог позволить себе его повторить. Всё просто: пишут исключительно технари, а маркетинг на пушечный выстрел не подходит к постам.

Технари, кстати, оказались совершенно офигенные. Только плевать они хотели на Хабр, по большому счёту. Как и везде.
Читать дальше →

Космическая ошибка: $370 000 000 за Integer overflow

Reading time9 min
Views113K
Пуск.
37 секунд полета… бабах!
10 лет и 7 миллиардов долларов, потраченных на разработку.
Четыре полуторатонных спутника научной программы Cluster (изучение взаимодействия солнечного излучения с магнитным полем Земли) и ракета носитель Ariane 5 превратились в «конфети» 4 июня 1996 года.
А вину свалили на программистов.



Предыдущая модель — ракета Ariane 4 — успешно запускалась более 100 раз. Что пошло не так?

Чтобы штурмовать небеса, нужно хорошо знать язык Ада.

Куча способов переиспользовать код в Rust

Reading time40 min
Views20K
Я нашел эту статью авторства Alexis Beingessner как наиболее понятное описание системы типов в Rust, и что с ними можно делать. Надеюсь, кому-нибудь этот перевод будет полезен. Не смотрите на то, что вначале описываются очевидные вещи — под конец можно утонуть. Статья огромная и скорее всего будет разобрана на главы. Переведено достаточно вольно. Авторский стиль сохранен. — прим.пер.

(статья написана о Rust 1.7 stable)

В системе типов Rust есть много всякого. Насколько я знаю, практически вся сложность этого всякого заключается в том, чтобы выразить программу в максимально обобщённом виде. Притом народ еще и требует большего! У меня всегда были проблемы с простым пониманием наиболее сложных вещей, потому этот пост скорее напоминалка самому себе. Но тем не менее, мне также нравится делать что-то, полезное другим, поэтому в данной статье также есть вещи, которые я вряд ли забуду, но о которых некоторые могут не знать.

В этой статье не будет исчерпывающего описания синтаксиса или общих деталей описываемых возможностей. Здесь рассказывается, почему происходит так или иначе, так как подобные вещи я всегда забываю. Если вы нашли эту статью в попытках выучить Rust полноценно, вам определенно стоит для начала ознакомиться с Книгой (оригинал вот — прим.пер.). В то же время я здесь буду уточнять некоторые произвольные теоретические аспекты того, что происходит.
Скорее всего, в этой статье полно ошибок, и она не должна претендовать на звание официального руководства. Это просто сборник того, что я накопал за неделю, пока искал новую работу.
Осторожно, там глубоко!

Готовим Asus RT-N16 к жаркому лету

Reading time7 min
Views87K
Привет %username%,
Скоро лето. К сожалению, я понял это не по пробуждению природы, а по поведению моего Asus RT-N16.
Как только столбик термометра начал достигать отметки в 27 градусов, железяка начала подтормаживать, FTP стал плохо реагировать на подключения, а иногда и просто уходить в даун. Я понял — приплыли, и начал доставать из закромов родины радиаторы, паяльник и отвертку.

При подготовке топика ни одного роутера не пострадало, так же топик не содержит сцены насилия и жесткости. (Осторожно фото.)
Что было дальше, читайте под катом.

РадиоАстрону 5 лет: главные достижения

Reading time11 min
Views15K


18 июля 2011 года на орбиту отправился российский научный космический аппарат «Спектр-Р», который стал основой самого успешного отечественного астрофизического проекта РадиоАстрон. По случаю годовщины мы пообщались с заведующим лаборатории внегалактической радиоастрономии Астрокосмического центра Физического института имени П. Н. Лебедева Российской академии наук Юрием Ковалевым. Разговор получился содержательным и объемным, но если вы действительно хотите узнать про успехи и результаты проекта, где российская космическая наука лидирует в мире, то стоит прочесть его полностью.
Читать дальше →

Почему, ну почему, эти #?@! придурки используют vi?

Reading time12 min
Views121K

Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

Читать дальше →

Разрешите представиться – проект FLProg

Reading time7 min
Views37K


Добрый день.

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

Среды программирования плат ардуино можно разделить на следующие типы:
  1. Прокачанные «Блокноты»
  2. Текстовые среды разработки
  3. Графические среды, визуализирующие структуру кода.
  4. Графические среды, отображающие код в виде графики.
  5. Визуальные среды программирования, не использующие кода.

Осторожно трафик!

Coroutines everywhere

Reading time4 min
Views5.6K
В своем докладе на C++ Russia 2016 Гор Нишанов упомянул, что корутины могут работать в любых окружениях, даже там, где нет C++ рантайма. Мне захотелось попробовать корутины в таких средах. Посмотреть, как самому «с нуля» реализовать поддержку корутин в стандартной библиотеке. Проверить, как корутины живут без исключений, и работают ли они вне операционной системы (на голом железе).
Читать дальше →

В теории Эйнштейна нашлась антигравитация

Reading time4 min
Views55K
Практически каждый из здесь присутствующих следит за событиями в научном мире. Возможно не меньшее число посетителей данного сайта также увлекаются чтением научной фантастики. Наверное многие из вас читали замечательный цикл романов Николая Николаевича Горькавого «Астровитянка». Произведения эти, наверное, больше подходят подростковой аудитории, но замечательно читаются в любом возрасте.

Мало кто знает, что Николай Горькавый не просто талантливый писатель, но серьезный ученый-физик. Наиболее известной из его работ является разработка модели резонансного происхождения тонких колец Урана и Сатурна, проведенной в соавторстве с А.М. Фридманом. Эта работа позволила предсказать целую серию спутников Урана, которые и были открыты при полете «Вояджера-2». В настоящее время живёт и работает в США, является директором и старшим научным сотрудником частного Гринвичского научно-технологического института (Greenwich Institute for Science and Technology, GIST) в штате Вирджиния. Подробнее о научных достижениях можно почитать на wiki.

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

image
Читать дальше →

Rust: for и итераторы

Reading time6 min
Views16K
(предыдущая статья)

В данной статье мы обсудим for циклы, а так же родственные понятия итераторов и «итерируемых объектов».

В зависимости от вашего предыдущего опыта с другими языками программирования данные концепции могут показаться очень знакомыми в плане синтаксиса и семантики, или же совершенно новыми и непонятными. Наиболее близкие их аналоги можно найти в Питоне, но, думаю, программисты на Java, C# или же (современном) C++ так же увидят много пересечений с тем что есть в их языках.
Подробности

Rust: & и ref в паттернах

Reading time5 min
Views11K
(продолжение)

Как вам, думаю, известно, Раст входит в число языков реализующих сопоставление с образцом (pattern matching). В случае если вам незнаком данный термин, вы можете думать о нём как об обобщёном switch выражении в котором мы сравниваем объекты не только по значению, но и по структуре:

match hashmap.get(&key) {
    Some(value) => do_something_with(value),
    None => { panic!("Oh noes!"); },
}

Разумеется сравнением дело не ограничивается. Как вы можете видеть в примере выше, объекты так же могут быть деструктурированы во время сопоставления (Some(value)) и их части присвоены другим переменным (value), которые могут быть далее использованы в соответствующей ветви match выражения.

Изящно, не правда ли? В Расте сопоставление с образцом это хлеб и масло не только для match, но и для for, (if) let и даже для обыкновенных аргументов функции.

Однако, долгое время я достаточно смутно представлял себе что происходит в случае когда мы добавляем к сопоставлению ссылки и заимствования. & и ref являются двумя «операторами» часто используемых при этом. Разнице между ними и будет посвящена данная статья.
Читать дальше →

Мифы и легенды о переполнении целых чисел в Rust

Reading time10 min
Views12K

Примитивные целочисленные типы, поддерживаемые процессорами, являются ограниченным приближением к бесконечному набору целых чисел, которыми мы привыкли оперировать в реальной жизни. Это ограниченное представление не всегда совпадает с "реальными" числами, например 255_u8 + 1 == 0. Зачастую программист забывает об этой разнице, что легко может приводить к багам.

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

Читать дальше →

Загадка штормгласса — домашней метеостанции на элементной базе начала XIX века

Reading time6 min
Views85K
Статьи про изготовление и использование домашних метеостанций публикуют на Гиктаймс регулярно. Я решил не отставать от тренда и тоже написать рассказ о метеостанции, которая висит у меня за окном — о штормглассе.

Если кратко, то штормгласс — это колба с раствором камфоры, использовавшаяся для наблюдения за погодой в XIX веке. Информации в сети о нём немало — но описания принципа работы обычно сводятся к эзотерическому «не получил полного научного объяснения». Несколько лет назад я прочитал о штормглассе, заинтересовался, сделал себе такой, несколько дней экспериментировал дома, потом повесил склянку за окно и уже второй год наблюдаю за её поведением в реальных условиях.


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

Объяснение принципа работы оказалось невероятно простым, а сам прибор — достаточно чувствительным, чтобы я мог, глянув на него, понять, как нужно одеваться, выходя из дома.
Если вам интересны подробности, прошу под кат.

Конфигурируемые логические ячейки в PIC микроконтроллерах

Reading time13 min
Views26K

Первоначальный замысел статьи состоял в описании Периферии Независимой от Ядра микроконтроллеров Microchip, но тема оказалась весьма обширной, поэтому в качестве первого шага расскажем о CLC – конфигурируемых логических ячейках (Configurable Logic Cell).


В статье (Использование конфигурируемых логических ячеек для управления светодиодной лентой WS2812 [1]) было рассмотрено как логические ячейки CLC PIC-контроллеров могут существенно упростить решение задачи формирования сигналов управления драйверами WS2812 и аппаратно реализовать функции, на программное решение которых может не хватать быстродействия простого микроконтроллера.
Цель представленной статьи заключается в более близком знакомстве с конфигурируемыми логическими ячейками в PIC микроконтроллерах Microchip, в демонстрации примеров реализаций и, по возможности, натолкнуть читателя на мысли по использованию CLC своих проектах.


Если очень кратко, то CLC это одна из частей ПНЯ.

Читать дальше →

Властелин Колец

Reading time12 min
Views50K
Привет Гиктаймс!

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

В прошлом голосовании, с большим отрывом, победил Властелин Колец. На этот раз Q&A делать не буду, поскольку все равно приходится все дублировать в комментариях.


Читать дальше →

Как Linkmeup ходил в гости к «НТЦ Метротек»

Reading time10 min
Views8K
Уже почти неделю, как за окном был беспробудный Питер, всё местное население окончательно перешло на жаберное дыхание и посмеивалось над гостями города, а так же теми кто ещё не выработал столь необходимое здесь умение. Ситуация требовала решительных мер и редакция Linkmeup приняла стратегическое решение поехать в гости. Выбор пал на “НТЦ Метротек”, благо звали они к себе давно и обещали интересное времяпрепровождение. По результатам визита был написан сей отчёт, который и предлагается вашему вниманию.

Внимание! Под катом текст с картинками. Качество картинок может сильно расстроить творческих личностей, но у нас был только длиннофокусный объектив. Наше дело предупредить.



Читать дальше →

Как изучать языки программирования

Reading time11 min
Views281K


Я ни в коей мере не утверждаю, что указанный мной способ лучший из возможных. Более того, я вовсе не уверен в том, что он вообще правильный. Возможно, если бы моим первым языком был не Си, а какой-либо из функциональных языков или ассемблеров, моё мнение было бы иным, и жизнь моя сложилось бы совсем иначе. Так что весь нижеизложенный материал воспринимайте со здоровым скептицизмом.
Читать дальше →

Information

Rating
2,828-th
Location
Алматы (Алма-Ата), Алма-Атинская обл., Казахстан
Date of birth
Registered
Activity