Pull to refresh
0
0
Антон @durik

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

Send message

Пишем свой Lisp на JavaScript

Reading time6 min
Views22K

image


Для начала следует задать простой вопрос: для чего?


Писать свой язык программирования — практически всегда плохая идея. Так зачем нам еще один лисп? Тем более, что уже есть ClojureScript, который на данный момент является production ready и имеет кучу приятных фич. Конкурировать даже с ClojureScript — безумие, — не гворя уже о TypeScript, CoffeeScript, etc. Но язык нам нужен и не для этого!


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

Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments49

Прекратите скручивать (восклицательный знак)

Reading time6 min
Views1.7M
Ну действительно, прекратите. Есть куча прикольных штук для соединения самых разнообразных проводов, а все равно технология «откусить зубами изоляцию, скрутить, замотать изолентой» жива до сих пор.

Дальше много текста, фотографий, разборок. Ну все как обычно
Total votes 682: ↑667 and ↓15+652
Comments360

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Reading time29 min
Views107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

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



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Total votes 96: ↑79 and ↓17+62
Comments37

Преобразование Фурье в действии: точное определение частоты сигнала и выделение нот

Reading time12 min
Views232K
последняя редакция статьи доступна на сайте makeloft.xyz

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

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

image

Читать дальше →
Total votes 74: ↑72 and ↓2+70
Comments49

Об удобной навигации и отладке C++ кода в Vim

Reading time7 min
Views41K
Компания, где я работаю, разрабатывает программное обеспечение на C++ под Linux. Долгое время мы использовали Qt Creator, с редкими ребятами работающими из Emacs и Vim. Когда я сам попытался пересесть на Vim, я понял, что ситуация с плагинами для разработки на С++ очень не простая. Поработав немного с CTags, я быстро понял, что без напильника работать в Vim будет очень сложно.
К сожалению, с ростом опыта работы с Vim редактор в Qt Creator в режиме эмуляции устраивал меня все меньше, и в какой-то момент я решил потратить немного времени и разобраться, как же сделать из Vim нормальную среду.
Я очертил для себя четыре вещи, которые я бы хотел от среды разработки, и которых мне бы хватило в Vim, чтобы полностью на него перейти:

1. Автодополнение
2. Навигация по коду
3. Отладка прямо из среды
4. Интеграция с Git (в частности Blame прямо в редакторе, и Git Grep)

Автодополнение в Vim — это решенная проблема, и название у решения YouCompleteMe. Это очень качественный плагин, который реализует автодополнение для большого количества языков программирования, в частности Python и C++. Ходят слухи, что внутри Google YouCompleteMe решает и вторую проблему с навигацией кода, но использует для этого внутренные инструменты гугла для индексирования.

Интеграция с Git в какой-то степени решена с помощью vim-fugitive. Это не такая комплексная интеграция, как бывает у Jet Brains, или в Visual Studio, но сравнимая с тем, что предлагает Qt Creator. Те два сценария, которые нужны были мне: blame и grep — работают хорошо.

Отладка и навигация были проблемами, решенными гораздо хуже. В этой статье я расскажу о плагине, который мы написали для навигации по С++ коду. В конце статьи я также расскажу о том, как мы для себя решили проблему с интегрированным отладчиком.
Читать дальше →
Total votes 56: ↑51 and ↓5+46
Comments92

V838 Единорога: видео взрыва звезды, собранное из фотографий телескопа Хаббл за 4 года

Reading time2 min
Views115K


Созвездие Единорога, до 2000 года будучи известным лишь астрономам, в начале нового тысячелетия, можно сказать, прославилось. Все дело в том, что в этом созвездии внезапно взорвалась звезда, V838 Единорога, без всяких предпосылок к взрыву.

При этом фотографии взрыва были получены телескопом Хаббл, который 4 года (с 2002 по 2006) регулярно снимал звезду (вернее, то, что от нее осталось). Все эти фотографии были скомпилированы в единое видео, продолжительностью в 50 секунд.

Читать дальше →
Total votes 82: ↑76 and ↓6+70
Comments48

Офис компании Boomburum

Reading time19 min
Views410K
image

Осторожно, трафик! Но можно хотя бы посмотреть картинки )

   Идея создать дома свой «рабочий кабинет» у меня зрела давно – как-то сам дошел до осознания его необходимости, хотя немалый вклад в начинания сделал этот давний пост на Хабре. У меня было своё рабочее место – большой удобный стол, где помещалось практически всё и даже больше… но, по сути, он был проходным двором – все время кто-то ходил, был рядом, отвлекал… такое очень часто мешает сосредоточиться и начать работать. Иногда, бывает, сидишь весь вечер за компом и понимаешь, что абсолютно ничего не сделал, хотя родным заявил «так, мне надо поработать».
Читать дальше →
Total votes 738: ↑625 and ↓113+512
Comments437

Переезд IT-шника в Германию: от А до Я

Reading time20 min
Views98K
Привет.

Germany Blue CardВ этом посте я хочу подробно рассказать о моём опыте переезда на работу PHP-разработчиком в Германию — от момента, когда есть просто желание переехать, но не знаешь что и как делать, до момента, когда уже переехал, вселился в квартиру и получил вид на жительство. Кроме того, в конце поста я приведу немного полезной информации и ссылок по переезду в некоторые другие страны.

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

Итак, если вы имеете IT-шное образование и вам интересна идея сваливания из печальной пост-совковой реальности, прошу под кат.
Читать дальше →
Total votes 211: ↑189 and ↓22+167
Comments163

RE: Возможны ли путешествия во времени?

Reading time9 min
Views66K
Вчера на Хабре появился потрясающий по своей безграмотности пост "Возможны ли путешествия во времени". В ответ на моё замечание о незнакомстве с базовыми научными представлениями о пространстве и времени автор припечатал меня вот так:
Если для Вас википедия — главный оплот истины и знаний, а физические законы непоколебимы — Вам пора на работу в инквизицию. Еще столько людей, опровергающих теоретические выдумки физиков 18 века, не сожжено!

Такого уровня воинствующего невежества я давно не видал, и уж на Хабре-то его видеть вдвойне странно.

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

Время



В классической механике время считается абсолютным и неизменным в том смысле, что при переходе от одной системы отсчёта к другой временные интервалы не изменяются:






Здесь (x, y, z, t) — координаты в старой системе, (x', y', z', t') — координаты в новой системе. Здесь и далее предполагается (для упрощения формул), что одна система движется относительно другой параллельно оси x со скоростью v.

Это т.н. преобразования Галилея — что происходит с координатами при смене системы отсчета. В галилеевом смысле «поток времени» один на всю Вселенную, и временные координаты у всех объектов одинаковы. При этом классическая механика никак не трактует уникальность стрелы времени; более того, само понятие движения времени в ньютоновы формулы не входит никак.

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

Однако «путешествие во времени» — т.е. перемещение одного конкретного объекта по шкале t в прошлое — ньютоновой механикой запрещено (см. выше — временной поток один на всю Вселенную).

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

Читать дальше →
Total votes 293: ↑271 and ↓22+249
Comments252

Полный архив рукописей Эйнштейна

Reading time1 min
Views1.9K


Еврейский университет в Иерусалиме заканчивает сканировать и публиковать в онлайне рукописи Альберта Эйнштейна. Сейчас на сайте Einstein Archives Online представлено около 3000 отсканированных изображений, к конца текущего года их число вырастет до 7000. Полный архив Эйнштейна превышает 80 000 записей, включая письма, заметки о путешествиях и прочие личные документы, например, школьный аттестат.
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments39

Структура и интерпретация компьютерных программ

Reading time1 min
Views12K
image
Перевод второй лекции Джеральда Сассмана
«Процедуры и процессы: подстановочная модель.»

Эти лекции были прочитаны 25 лет назад сотрудникам HP, но на самом деле это тот легендарный вводный курс 6.001, который читался в MIT в 1980 году. С тех пор эти лекции sine qua none во всем мире программирования. Хотелось бы чтобы каждый программист посмотрел этот курс, ничего не учит абстрактному мышлению лучше, чем SICP.
Приятного просмотра на ночь глядя.
Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments37

Обзор теорий сознания: теория функциональных систем П.К. Анохина

Reading time7 min
Views63K
Множество исследований в области искусственного интеллекта сталкиваются с проблемой отсутствия на сегодняшний момент какой-либо мощной теории сознания и мозговой активности. Фактически мы обладаем достаточно скудными знаниями о том каким образом мозг обучается и достигает адаптивного результата. Однако, на данный момент происходит заметное увеличение взаимовлияния области искусственного интеллекта и нейробиологии. По результатам математического моделирования мозговой активности ставятся новые цели для экспериментов в области нейробиологии и психофизиологии, а экспериментальные данные биологов в свою очередь во многом влияют на вектор развития ИИ.

Исходя из вышесказанного становится ясно, что для будущего успешного развития бионического ИИ необходимо плотное сотрудничество математиков и нейробиологов, которое в итоге будет плодотворным для обеих областей. Для этого в частности необходимо изучение современных успехов теоретической нейробиологии.

На данный момент существуют три наиболее проработанных и отчасти экспериментально проверенных теории строения сознания в области теоретической нейробиологии: теория функциональных систем П.К. Анохина, теория селекции нейрональных групп (нейродарвинизм) Джеральда Эдельмана и теория глобальных информационных пространств Жана-Пьера Шанже (изначально сформулирована Бернардом Баарсом). Остальные теории либо являются модификациями названных, либо не подтверждены никакими экспериментальными данными. В данной статье речь пойдет о первой из этих теорий — Теории функциональных систем П.К. Анохина.
Читать дальше →
Total votes 48: ↑41 and ↓7+34
Comments63

А вы подключали телескоп к компьютеру?

Reading time2 min
Views45K
Наткнувшись на старый хабрапост про подключение микроскопа к компу я решил раздвинуть горизонты общественности и написать, что подключить телескоп к компьютеру может быть намного интереснее, чем считать микробов. А если вы фанат астрономии или «Звездных Войн» — то вы с этой возможностью либо уже знакомы, либо весьма ей обрадуетесь. Вот я решил попробовать и рассказать о своем опыте в этой области.
image
Читать дальше →
Total votes 148: ↑144 and ↓4+140
Comments115

Поддержка формы айтишника

Reading time5 min
Views1.7K
После прочтения статьи Ghetto workout товарища papa_justify, а так же изучения обширных и разнообразных комментариев к ней, решился написать свой первый пост на схожую тематику. Сразу скажу, что я не достиг феноменальных успехов в построении рельефного тела, не добился мировых рекордов и не был занесен в книгу рекордов Гиннеса.

Эта статья — попытка обобщить, поделиться и обсудить с товарищами по несчастью информацию, накопленную на протяжении 3 лет тренировок.

Предыстория


Вопрос поддержания собственной физической формы остро стал после поступления в ВУЗ. До этого спортом, как таковым, я не занимался (за исключением шахмат в 5-ом классе, полугодовалого хождения на каратэ-до и физкультуры в школе). После первого семестра активной учебы и сдачи лаб, вольготного отношения к физкультуре и веселого распития пива, стал замечать, что потихоньку начинаю терять форму и обрастать жиром. Начал задумываться как комплексно подойти к решению сложившейся проблемы. Решительно и бодро проштудировал многочисленные сайты и руководства для юных качков и уверенно пошагал в зал (благо он был бесплатен). Естественно без тренера и естественно без какой-либо системы начал таскать все, что попадалось под руки. С разным количеством подходов и упражнений в них. Естественно, ожидаемого эффекта накачаться мои отчаянные попытки не дали. Далее я снова углубился в литературу и начал открывать для себя все новые и новые горизонты.
Думаю, не стоит описывать все мои попытки достичь высот, ибо это займет слишком много моего и вашего времени. Попытаюсь вкратце рассказать, что я извлек для себя из всего этого.
Читать дальше →
Total votes 46: ↑37 and ↓9+28
Comments35

Занимательная астрономия — факты о Луне

Reading time3 min
Views20K
Луна - кратер Дедал.Для начала — несколько цифр:
  • Объем Луны 21,99·109 км3 или всего лишь 2% от объема Земли, и это при том, что:
  • Диаметр Луны 3476,0 км = 0,2725 экв. диаметра Земли (примерно четверть земного).
  • Площадь поверхности Луны 37,96·106 км2 = 0,074 площади поверхности Земли (примерно 1/14 земной).
  • Среднее расстояние от Луны до Земли 384 400 км.
  • Орбитальная скорость Луны 3 679,2 км/ч = 1,022 км/с.
  • Видимый угловой диаметр Луны на среднем расстоянии от Земли 31'05",16.
  • Масса Луны 7,35·1025 г. = 0,0123 массы Земли (1/81 земной).
  • Ускорение свободного падения на поверхности Луны 1,63 м/с2 = 16,5% от земного.
  • Вторая космическая скорость 2,38 км/c (11,2 км/с у Земли).

Интересности


Все знают что Луна обращена к Земле всегда одной стороной, но мало кто знает что благодаря либрации суммарно можно наблюдать около 59 % лунной поверхности. Данное явление было открыто Галилео Галилеем в 1635 году, когда он был осуждён Инквизицией.

Об этом и многом другом читаем под катом.
Читать дальше →
Total votes 106: ↑90 and ↓16+74
Comments49

Квантовый компьютер: от мечты к реальности

Reading time12 min
Views8.2K
Сейчас весьма абстрактные идеи, лежащие в основе квантовой физики, воплощаются в реальность благодаря новым технологическим возможностям в области нанотехнологий и оптических взаимодействий. Об одной из таких идей, идее квантового компьютера, далее и пойдет речь. Постараюсь как можно более популярней.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments16

Книга «Краткая история времени», написанная Стивеном Хокингом

Reading time3 min
Views5.1K
Краткая история времени
Издательство: Амфора, 2010 г.
Твердый переплет, 231 стр.
Книга на Ozon.ru


Посмотрев перевод ролика «Ричард Фейнман: Магниты и вопросы «почему?» вспомнился не менее известный физик Стивен Хокинг и его труды.
А вспомнился он не просто так. Ричард Фейнман в ролике пытается объяснить простую, казалось бы, вещь — почему магниты отталкиваются и притягиваются друг к другу. И бОльшую часть ролика объясняет, что без специальных знаний некоторые вещи понять невозможно, и чем сильнее мы упрощаем модель, тем дальше уходим от истины. Может оно и так, но для меня, знающего только школьный курс физики, стала откровением книга Стивена Хокинга «Краткая история времени», которая объясняет этот и многие другие вопросы. Несмотря на то, что книга весьма популярная, на Хабре нашел всего несколько упоминаний о ней.
Читать дальше →
Total votes 153: ↑133 and ↓20+113
Comments72

Разбор каптчи Xakep.ru

Reading time8 min
Views8.3K
Разбор каптчи xakep.ru

Предисловие


В статье будет рассмотрен пример распознавания реальной каптчи, которая используется на сайте xakep.ru для защиты от спама в комментариях и создания ботов на почте. Я хочу показать, что зная минимум вычислительной математики можно решить эту частную задачу. Более того, не подразумевается знание концепций нейронных сетей. В статье приводятся ссылки на другие статьи с Хабра для сравнения, но при создании программы я не пользовался ими вовсе.
В изложении я постараюсь не вдаваться в тонкости алгоритма и рассматривать то, что следовало бы сделать для более общего случая. Интересующийся читатель может задать вопросы мне лично, посетить блог или обратиться к моей курсовой работе по этой теме. На момент написания курсовая еще не готова.

Читать дальше →
Total votes 161: ↑150 and ↓11+139
Comments37

Защита программного обеспечения: Основные ошибки при программировании блока регистрации программы (или один бит может изменить мир)

Reading time4 min
Views4.7K
Для того чтобы написать хорошую программу, как правило, требуется от программиста много времени и сил. Большинство программистов даже не представляют себе насколько просто их программы могут быть взломаны. Стандартное время, необходимое для взлома программы с ошибками в защите блока проверки легальности пользователя обычно не превышает 5 минут. В своих статьях я хочу рассказать об основных недочетах, которые допускают программисты в блоках регистрации приложений. Для этого я написал небольшую программу, на которой постараюсь показать насколько легко можно обойти участок кода, отвечающий за проверку легальности копии программного обеспечения. Если данная тема будет интересна читателям, она найдет продолжение в последующих публикациях.

Читать дальше →
Total votes 39: ↑27 and ↓12+15
Comments71
1
23 ...

Information

Rating
Does not participate
Location
Ярославская обл., Россия
Registered
Activity