Search
Write a publication
Pull to refresh
0
Александр @aleksmegaread⁠-⁠only

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

Send message

Как работает рекурсия – объяснение в блок-схемах и видео

Reading time4 min
Views210K
Представляю вашему вниманию перевод статьи Beau Carnes How Recursion Works — explained with flowcharts and a video.


«Для того чтобы понять рекурсию, надо сначала понять рекурсию»

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


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


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


Есть два основных подхода в создании алгоритма для решения данной проблемы: итеративный и рекурсивный. Вот блок-схемы этих подходов:




Какой подход для Вас проще?

Тонкости выбора SSD для ноутбука

Reading time6 min
Views297K
Привет, GT! Качественный SSD раскрывает потенциал любого ноутбука. Хорошо, если он установлен сразу, а если нет? Разбираемся с разными вариантами твердотельных накопителей и определяем, какой из них лучше подходит для апгрейда мобильного компьютера.


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

Разработка нативных расширений для Node.js

Reading time5 min
Views24K
В этом материале мы поговорим о важнейших концепциях разработки нативных расширений для Node.js. В частности, здесь будет рассмотрен практический пример создания такого расширения, который вполне может стать вашим первым проектом в этой области.


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

Компилятор на JavaScript с использованием ANTLR

Reading time19 min
Views17K



В начале этого года я присоединилась к команде, работающей над MongoDB Compass — графическим интерфейсом для MongoDB. Пользователи Compass через Intercom запросили инструмент, позволяющий писать запросы к базе данных, используя любой удобный им язык программирования, поддерживаемый драйвером MongoDB. То есть нам нужна была возможность трансформировать (компилировать) язык Mongo Shell в другие языки и обратно.

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

Разработка AI для пошаговой игры на Node.js (часть 2)

Reading time16 min
Views8.3K
И снова здравствуйте, друзья!

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

А я перейду к рассказу о следующем этапе работы!
Читать дальше →

TDD ошибочно?

Reading time12 min
Views30K
Читать дальше →

Не защищайте сайт от скрапинга: сопротивление бесполезно

Reading time9 min
Views36K
За последнее десятилетие я реализовал много проектов, связанных с агрегацией и анализом контента. Часто агрегация включает в себя снятие данных со сторонних сайтов, то есть скрапинг. Хотя я стараюсь избегать этого термина. Он превратился в некий ярлык, с которым связано много заблуждений. Основное заблуждение в том, что веб-скрапинг можно заблокировать с помощью X, Y, Z.

tl; dr; Нельзя.

С точки зрения бизнеса


На прошлой неделе я встретился с высокопоставленным руководителем из отрасли, в которой развиваю свой бизнес GO2CINEMA. Без сомнения, это один из самых умных и знающих людей в киноиндустрии.

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

Я посоветовался с этим человеком насчёт поиска инвестиций. Он предложил свою помощь и попросил подготовить анализ всех способов блокировки моего текущего бизнеса, включая скрапинг контента (с технической и юридической точек зрения). Я подготовил необходимые документы и поделился с ним перед нашей встречей. Его реакция была примерно такой:

Да, тщательное исследование. Но всё-таки есть способы, чтобы тебя заблокировать. *ухмыляется*

Нет, парень, нет таких способов.
Читать дальше →

Операторы ?., ?? и |>: будущие возможности JavaScript, которые вам понравятся

Reading time10 min
Views142K
Джастин Фуллер, автор материала, перевод которого мы сегодня публикуем, предлагает рассмотреть три новых возможности, появление которых ожидается в JavaScript в обозримом будущем. Сначала он расскажет о процессе развития JS, а после этого представит обзор этих возможностей и покажет примеры их использования. Речь пойдёт об операторах ?., ?? и |>.

О стандарте ECMAScript и развитии JavaScript


Если вы уже знакомы с особенностями деятельности рабочей группы ECMA TC39, с тем, как она осуществляет отбор и обработку предложений о совершенствовании JavaScript, вы вполне можете пропустить этот раздел. Если же вы из тех, кому интересно об этом узнать — вот краткий обзор того, чем занимается TC39.

JavaScript — это реализация стандарта, называемого ECMAScript, который был создан для стандартизации реализаций языка, которые появились в ранние годы существования веб-браузеров.

Существует восемь редакций стандарта ECMAScript и семь релизов (четвёртая редакция стандарта не выходила, после третьей сразу идёт пятая). Разработчики JavaScript-движков приступают к реализации новшеств языка после выхода стандарта. Здесь можно увидеть, что не каждый движок реализует все возможности, при этом некоторым движкам для введения новшеств требуется больше времени, чем другим. Хотя такое положение дел и не идеально, это, всё же, лучше, чем полное отсутствие стандартов.
Читать дальше →

Выбираем Yii2 или laravel

Reading time11 min
Views81K

Введение


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

В данной статье, не будут рассматриваться все тонкости разработки на фреймворках, поскольку это не возможно уложить в рамках одной статьи. Однако, можно достаточно подробно разъяснить те нюансы, которые помогут в выборе для изучения или реализации конкретного проекта. Сравнивать будет Yii2 и Laravel. Я понимаю, что это достаточно холиварная тема, результат которой обычно гласит, что каждый хорош по своему. Я, как человек работавший с обеими, попробую разъяснить свой подход к выбору фреймворка, и постараюсь наиболее объективно показать их минусы и плюсы.
Читать дальше →

И снова о переводе документации PHP

Reading time4 min
Views8K


Предыстория


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

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

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

Операционная система на JavaScript? JsOS

Reading time3 min
Views49K

Приветствую, хабровчане!


Как вы думаете, можно ли создать полноценную операционную систему на языке программирования JavaScript, с которой можно загружаться?


Правильный ответ — можно!


image


Сегодня я хочу рассказать вам про проект JsOS.

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

Ранняя вселенная 2. Инфляционная Космология: является ли наша вселенная частью мультивселенной? Часть 2

Reading time28 min
Views11K
На сайте бесплатных лекций MIT OpenCourseWare выложен курс лекций по космологии Алана Гуса, одного из создателей инфляционной модели вселенной.

Вашему вниманию предлагается перевод второй лекции: «Инфляционная Космология. Является ли наша вселенная частью мультивселенной? Часть 2».
Читать дальше →

Миостимуляция с МКС поможет от сердечной недостаточности на Земле

Reading time3 min
Views3.7K
Космонавты и астронавты на Международной космической станции в первую очередь должны проводить исследования, в том числе на себе. Различные эксперименты связаны с физическим и психическим состоянием человека в космосе. Космический опыт иногда переносят на Землю — российские учёные планирует испытать методику низкочастотной электростимуляции, которая в будущем может облегчить жизнь пациентов с хронической сердечной недостаточностью.

В рамках эксперимента подопытные пять дней проведут в неподвижности в «сухой» ванне. Один из испытуемых — начальник лётно-испытательного центра РКК «Энергия» Марк Серов, всего участвуют 10 добровольцев. Исследования проходят в Институте медико-биологических проблем (ИМБП РАН).


Фото Олега Волошина, со страницы Facebook ИМБП РАН
Читать дальше →

Спросите Итана: с кем из великих учёных нобелевский комитет обошёлся особенно несправедливо?

Reading time8 min
Views14K


Альфред Нобель, изобретатель динамита и автор 355 патентов, в своём завещании от 1895 года написал, что хочет основать Нобелевскую премию и описал правила её вручения. После его смерти в 1896 премию ежегодно вручают с 1901 года, за исключением того периода времени, когда Германия оккупировала Норвегию во время Второй Мировой войны.

В науке прорывы часто происходят большими шагами. Оглядываясь назад, довольно просто определить сотни маленьких шагов, приведших к моментальному открытию, но складывается впечатление, что перевороты происходят одновременно. Это не означает, что людям, сделавшим революционные открытия, всегда воздают по заслугам. Самой престижной научной наградой, без сомнения, считается нобелевская премия, но и она иногда весьма впечатляюще отвергала самых достойных кандидатов. Наш читатель спросил:
Я хотел бы узнать, кого бы вы выбрали на звание наиболее несправедливо отвергнутого кандидата на Нобелевскую премию, человека, который её заслуживал, и с которым нобелевский комитет поступил некрасиво. Лично я бы выбрал Ву Цзяньсюн.
Достойных кандидатов много, поэтому наименьшее, что я могу сделать – перечислить их и осветить их достижения. Не в каком-то определённом порядке я предлагаю вам список из 10 лучших учёных, совершивших невероятные открытия, но так и не получивших заслуженных почестей.
Читать дальше →

Когда вероятность встречается с реальностью: три задачки на теорию вероятностей

Reading time5 min
Views28K

Оказавшись перед трудным выбором, стоит доверять интуиции или тщательно просчитать все сопутствующие риски?




Для людей с научным складом ума естественно пытаться применять рациональные методы для оценки рисков повседневной жизни. К примеру, надо ли делать прививку от гриппа, если вам нет 40 лет и вы здоровы? Нужно ли выпрыгивать из самолёта (с парашютом)? Благородная цель, применение логики для оценки рисков, однако, сталкивается с двумя препятствиями. Во-первых, в отсутствии определённости мы обычно принимаем решения на основании комбинации из интуиции и целесообразности, и довольно часто это срабатывает. Во-вторых, нас постоянно атакует множество всё время изменяющихся случайных событий. "Как случайность управляет нашей жизнью" – такой подзаголовок был у весьма поучительного бестселлера Леонарда Млодинова. Эти постоянные тычки от случайных сил красочно продемонстрированы в этом отрывке, перефразированном из гораздо более длинной детской сказки 1964 года под названием "К счастью" Реми Чарлипа, который вдохновил нашу первую задачу.
Читать дальше →

Xiaomi, подвинься, Alfawise пришёл

Reading time6 min
Views64K
Мир уже вряд ли содрогнётся, услышав об очередном убийце iPhone — новость звучит так себе, гораздо приятнее узнать, что сегмент рынка расширился за счёт нового бренда. Конкуренция обеспечивает внимание потребителей, ответственность за качество, интересные ценовые позиции, скидки и прочие бонусы. Поэтому иногда стоит не убивать, а откусить долю в честной борьбе. И на фоне китайского производственного бума, экономического роста и мировой экспансии ритейла иногда вспыхивают реальные звёзды, бросающие вызов рынку и готовые отстраивать свою экосистему.

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


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

Россия, Германия и Япония готовятся к синтезу элементов 119 и 120

Reading time3 min
Views26K

Периодическая таблица химических элементов (на начало 2018 года)

В этом году Лаборатория ядерных реакций имени Г.Н. Флерова в Объединённом институте ядерных исследований (ОИЯИ) в Дубне запустят новый ускорительный комплекс — Фабрику сверхтяжёлых элементов. Этот комплекс станет базой для синтеза новых химических элементов.

«Мы готовимся к синтезу первых двух элементов восьмого периода — 119-го и 120-го. Планируем начать соответствующие эксперименты в 2019 году», — сказал «Известиям» учёный секретарь Лаборатории ядерных реакций ОИЯИ Александр Карпов.

Именно в Дубне на ускорительном комплексе У-400 были открыты 113-й элемент (нихоний, Nh, получился как побочный продукт при синтезе 115-го элемента), 115-й (московий, Mc), 117-й (теннесин, Ts) и 118-й (оганесон, Og).
Читать дальше →

Какие задачи хорошо подходят для научных исследований?

Reading time7 min
Views8.5K

Какое число нужно вставить в последний треугольник?

Учёные решают задачи; такая у них работа. Но какие задачи будут многообещающими темами для проведения исследований? Для ответа на этот вопрос я написала книгу "Затерянные в математике", где рассмотрела задачи, связанные с основами физики.

Первую, грубую классификацию исследовательских задач можно организовать, используя цикл развития научных теорий Томаса Куна. Цикл Куна состоит из фазы «обычной науки», за которой следует «кризис», ведущий к смене парадигмы, после которой начинается новая фаза «обычной науки». Это невероятное упрощение реальности, но для последующих рассуждений подходит.

Обычные задачи


В течение фазы обычной науки вопросы для исследований обычно можно сформулировать как «Как бы нам это измерить?» (для экспериментаторов) и «Как бы нам это подсчитать?» (для теоретиков).
Читать дальше →

Как читать больше книг

Reading time8 min
Views34K


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

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

Главная хитрость для того, чтобы прочитывать больше


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

Придвиньтесь поближе. Я шёпотом сообщу вам секрет того, как прочитывать больше книг. Готовы?
Читать дальше →

Новый кубит заработал без разрывов

Reading time4 min
Views12K
Международная группа ученых из России, Великобритании и Германии продемонстрировала альтернативную конструкцию кубита, которая может быть использована для построения квантового компьютера. Основным элементом этой конструкции являются нано-проволоки из сверхпроводника. Уже в первых экспериментах новый сверхпроводниковый кубит показал себя не хуже традиционных кубитов, построенных на джозефсоновских переходах.



Схема и рисунок нового кубита
Читать дальше →

Information

Rating
Does not participate
Location
Луганск, Луганская обл., Украина
Date of birth
Registered
Activity