Pull to refresh
0
Сергей@fergread⁠-⁠only

User

Send message

Учебный курс по React, часть 23: первое занятие по работе с формами

Reading time7 min
Reach and readers16K
В этой части перевода учебного курса по React мы поговорим о работе с формами. В частности, сегодняшнее занятие посвящено организации взаимодействия компонентов и текстовых полей.

image

Часть 1: обзор курса, причины популярности React, ReactDOM и JSX
Часть 2: функциональные компоненты
Часть 3: файлы компонентов, структура проектов
Часть 4: родительские и дочерние компоненты
Часть 5: начало работы над TODO-приложением, основы стилизации
Часть 6: о некоторых особенностях курса, JSX и JavaScript
Часть 7: встроенные стили
Часть 8: продолжение работы над TODO-приложением, знакомство со свойствами компонентов
Часть 9: свойства компонентов
Часть 10: практикум по работе со свойствами компонентов и стилизации
Часть 11: динамическое формирование разметки и метод массивов map
Часть 12: практикум, третий этап работы над TODO-приложением
Часть 13: компоненты, основанные на классах
Часть 14: практикум по компонентам, основанным на классах, состояние компонентов
Часть 15: практикумы по работе с состоянием компонентов
Часть 16: четвёртый этап работы над TODO-приложением, обработка событий
Часть 17: пятый этап работы над TODO-приложением, модификация состояния компонентов
Часть 18: шестой этап работы над TODO-приложением
Часть 19: методы жизненного цикла компонентов
Часть 20: первое занятие по условному рендерингу
Часть 21: второе занятие и практикум по условному рендерингу
Часть 22: седьмой этап работы над TODO-приложением, загрузка данных из внешних источников
Часть 23: первое занятие по работе с формами
Часть 24: второе занятие по работе с формами
Часть 25: практикум по работе с формами
Часть 26: архитектура приложений, паттерн Container/Component
Часть 27: курсовой проект
Читать дальше →

Яхтинг — это может быть недорого

Reading time8 min
Reach and readers27K


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

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

В двадцать первом веке можно очень чётко скоординироваться и с лодками в аренду, и с лодками, которые просто идут мимо (и им нужны волонтёры или они не против платных пассажиров), и вообще с кем угодно.

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

В общем, это немного оффтопик, но вы просили рассказать про яхты, и вот я выполняю обещание.
Читать дальше →

Лазер, который режет внутри роговицы: процедура ReLEх на физическом уровне

Reading time6 min
Reach and readers81K

Кадр из телеметрии ReLEx — внутри глаза за примерно 4 миллиона лазерных импульсов вырезана линза-лентикула, она удаляется через 2,5-миллиметровый разрез у края, касающийся поверхности. Сегодня поговорим о лазере, который это делает.

Идея — взять и вырезать в прозрачной роговице глаза линзу — не нова. Сначала это делалось вручную, скальпелем прямо по поверхности (сложно и очень грубо, с морем побочных эффектов). Первый лазер использовали в 1979 году, тогда это был импульсный инфракрасный излучатель с эффективной длиной импульса в 4 наносекунды.

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


Шаг 1: создание пузырька плазмы, фактически — микровзрыв. Шаг 2: расширение ударной и тепловой волны. Шаг 3: кавитационный пузырь (расширение плазмы). Шаг 4: формирование параллельного среза за счёт нескольких рядом расположенных точек фокусировки лазера

Сегодня один «микровзрыв» длится не 4 наносекунды, а в 10.000 раз быстрее.
Читать дальше →

Делаем проект на Node.js с использованием Mongoose, Express, Cluster. Часть 1

Reading time9 min
Reach and readers51K

Введение


Добрый день, дорогой %username%! Сегодня мы будем описывать создание каркаса приложение по типу MVC на Node.js с использованием кластеров, Express.js и mongoose.


Задача — поднять сервер который имеет несколько особенностей.


  • Работает в несколько асинхронных потоков.
  • Сессионная информация будет в общей для всех потоков.
  • Поддержка HTTPS.
  • Авторизация.
  • Легко масштабируем.

Статья написана новичком для новичков. Буду рад любым замечаниям!

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

Программируем Arduino с помощью Sublime + Stino на MacOS

Reading time3 min
Reach and readers16K


Хотелось бы поделиться опытом настройки и использования любимых мной программных продуктов по программированию Arduino контроллеров на Mac OS. Многие используют Sublime как хорошую среду программирования, например, добавив пакет Stino можно получить возможность писать код и заливать его в Arduino контроллеры. О том как всё это за 10 минут настроить под Windows написано много мануалов, но вот как заставить работать на Mac OS сказано мало. Если у вас есть Mac и Arduino, добро пожаловать под кат (внимание, много картинок!).
Читать дальше →

Разведка и инженерное дело: 3D-модели зданий, развязок и карьеров по фото

Reading time6 min
Reach and readers36K


В какой-то момент у нас на пороге появился человек в штатском с целым жёстким диском фотографий одного инженерного объекта (назовём его для определённости путепроводом через железную дорогу). Задача сводилась к традиционному «когда-то давно строили, а потом потеряли исходную документацию», и нужно восстановить проект с погрешностью в сантиметр-два.

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

Кстати, в чём-то похожая задача была у одного из наших партнёров — нужно было снять карьер площадью 470 Га и:
  1. Определить объёмы выработки породы.
  2. Подсчитать объём склада продукции.
  3. Получить поверхность для уточнения уровня гидроотвала.
  4. Получить 3D-модель всей территории.



Часть маршрутов

Её решили с помощью беспилотника, длинных гвоздей, GPS-приёмника и двух пачек пластиковых тарелок за 5 рублей за штуку.
Читать дальше →

RandomRace.ru — радиопеленгация за несколько долларов (продолжение)

Reading time7 min
Reach and readers23K


Начало там.

И тут внезапно я обнаруживаю на алиэкспрессе модули HC-11. Это радиоудлиннитель UART, сделанный из того же STM8S003F3P6 и субгигагерцового цифрового трансивера CC1101 фирмы TI. Стоимость модуля тоже радовала — $3.5-$8 вместе с доставкой.
Читать дальше →

Советы начинающим программистам микроконтроллеров

Reading time10 min
Reach and readers230K
Очень давно хотелось поделиться своим опытом, с начинающими радиолюбителями, потому что об этом пишут очень мало и разрозненно. Мой опыт не хороший, не плохой, он такой какой есть. С некоторыми утверждениями вы в праве не согласиться и это нормально, ведь у каждого свое видение ситуации. Цель данного материала, обратить внимание читателя на некоторые вещи, что то взять на заметку и сформировать собственное мнение и видение ситуации, ни в коем случае нельзя воспринимать это как истину.
Читать дальше →

Создание бекапов удаленно используя ssh, scp, tcl. Несколько способов

Reading time3 min
Reach and readers9.8K
Бекапы — вещь необходимая. Особенно понимаешь это тогда, когда срабатывает закон подлости и несмотря на многие моменты предосторожности, теряется информация, на восстановление которой может понадобиться много времени, если нет резервных копий.
Это статья в первую очередь для программистов, но возможно и администраторы почерпнут некую полезную информацию для себя.
Задача стоит в том что у нас есть один или несколько серверов, на котором есть часто обновляющаяся информация. Эту информацию нужно периодически бекапить на каком то одном «главном» сервере. Для этого мы напишем скрипт, который поместим на главном сервере, который будет автоматически коннектиться к каждому серверу создавать там бекапы, архивировать их и копировать архивы бекапов на главный сервер используя протокол безопасного копирования файлов SCP.
И так перейдем к нашим скриптам.
Читать дальше →

Немного о биологии и биоинформатике

Reading time8 min
Reach and readers9.6K

Введение


Думаю, все пользователи Хабра знакомы с успехами человечества в области микроэлектроники, подавляющее большинство — покорения космоса, немалая часть — физики. Но почти никто не знает о том, что прямо сейчас в биологии происходит революция, которая изменит нашу жизнь в ближайшие несколько десятилетий не меньше, чем распространение компьютеров. Более того, эта революция напрямую связана с успехами в построении мощных вычислительных систем.Конечно же, какие-то «круги по воде» расходятся. Но далеко не каждый способен сопоставить истерию в СМИ относительно ГМО, слово «рекомбинантный» на пузырьке с интерфероном или инсулином и невнятные (в России) слухи о неком 23andme. На самом деле, все эти явления связаны одной нитью. И распутывать эту нить лучше с самого начала.
Читать дальше →

Пятая информационная революция

Reading time6 min
Reach and readers17K
Сущностью социального явления служит факт взаимодействия индивидов и групп.
Питирим Сорокин


Disclaimer: все нижеизложенное является плодом больного воображения автора, а не переводом, творческим пересказом или иной формой плагиата. Честно.

Первая информационная революция началась примерно 40 тысяч лет назад. До этого момента предки человека эволюционировали довольно неспешным темпом как минимум несколько миллионов лет. Однако в период позднего палеолита (начался примерно 40 тысяч лет назад — закончился примерно 10 тысяч лет назад) происходит ряд важнейших процессов, укладывающихся в достаточно короткий по археологическим меркам период:

а) ускорился технический прогресс; впервые скорость эволюции орудий превысила скорость изменений собственно человеческого тела (см. здесь с иллюстрациями);

б) началась экспансия homo sapiens в Европу; сам по себе вид sapiens появился, предположительно, в Африке около 130-150 тысяч лет назад, и 50-55 тысяч лет назад уже предпринял экспансию в Азию. Однако именно в Европе sapiens встретился с серьезной конкуренцией с другими представителями семейства homo — неандертальцами. Сейчас нет единого мнения, было ли это прямое столкновение или два вида конкурировали за ресурсы, но, так или иначе, неандертальцы были побеждены. Европейскую ветвь homo sapiens принято называть кроманьонцами;

в) зародилось искусство; самые древние из известных сейчас наскальных рисунков были сделаны около 35-40 тысяч лет назад. Самые древние из европейских наскальных рисунков относятся к 30-32 тысячелению до н.э. и обнаружены в пещере Шове (один из них и приведен слева).

Причем же здесь информационная революция, спросите Вы? Дело в том, что в этот период возникает еще один специфически человеческий феномен:

Какой же?

Бесконечные неповторяющиеся текстуры с помощью мозаики Вана

Reading time4 min
Reach and readers49K


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

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

Как же быть? Есть один трюк — непериодические мозаики. Они лишены проблемы повторяемости и достаточно просты в реализации. Одну из таких мозаик придумал китайский математик Ван Хао в 1961 году. Элементы этой мозаики можно представить в виде прямоугольников с разноцветными гранями. Но чтобы понять принцип её работы, надо сначала разобраться в классическом методе заполнения площадей текстурами.
А классический метод таков...

Памятка пользователям ssh

Reading time13 min
Reach and readers1.7M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

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

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →

На пути к созданию безопасного веб-ресурса. Часть 1 — серверное ПО

Reading time7 min
Reach and readers100K
Я уже довольно долгое время хочу формализовать все свои мысли, опыт, ежедневно применяемый на практике, и многое другое в одном месте и предоставить их общественности. Уверен, многим этот материал будет полезен. Он посвящен различным моментам в конфигурации серверного ПО Linux и безопасным подходам к созданию сайтов/приложений на php (все же это до сих пор одна из самых популярных связок, хоть её успешно и подвигают другие технологии. Но советы так же легко применимы и к веб-ресурсам на других технологиях).

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

Контролируемое кэширование страниц в nginx

Reading time3 min
Reach and readers37K
Введение

Как известно, nginx умеет кешировать ответ сервера, и выдавать его по запросу вместо обращения к бэкенду, экономя тем самым ресурсы сервера. Скорость отдачи таких закешированных страниц иногда поражает, ради таких скоростей иногда не жалко переносить на javascript многие функции сайта только для того, чтобы иметь возможность закешировать ещё 1 страницу целиком (Например, вынести отрисовку плашки с авторизацией юзера на js, чтобы иметь возможность кешировать страницу, которая идентична для всех пользователей, за исключением этой самой плашки).

Я много раз использовал возможность кэширование nginxом страниц, и натыкался на пару неудобных для себя вещей:
  • Можно легко закешировать вообще все страницы, но для динамических сайтов или для сайтов с авторизацией нужно ли это?
  • Можно закешировать отдельно несколько url, вида /album/*, но не переписывать же конфиг nginx каждый раз при появлении новых разделов сайта?

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

VPN-мост в локальную сеть

Reading time10 min
Reach and readers241K
Прочитал топик habrahabr.ru/blogs/linux/67209 и решил выложить сюда свою статью, которая была до этого видна только в закрытой корпоративной Wiki.

Обычно, при создании VPN, используется подключение типа точка-точка к некоторому серверу, либо установка ethernet-туннеля с некоторым сервером, при котором туннелю назначается определённая подсеть. Сервер VPN при этом выполняет функции маршрутизации и фильтрования трафика для доступа к локальной сети через VPN.

Данная статья рассматривает другой подход к созданию виртуальной сети, при котором удалённые системы включаются в уже существующую локальную подсеть, а сервер VPN выполняет роль Ethernet-шлюза. При использовании такого подхода мы всё ещё имеем возможность фильтровать трафик на основании способа подключения (например, использовать для локальной сети и для удалённых пользователей разные фильтры), но исключается необходимость настройки маршрутизации, а удалённые машины включаются прямо в локальную сеть, видят ресурсы, даже способны использовать широковещательные посылки вообще без дополнительной настройки. Через такой VPN у них отображаются все компьютеры локальной сети Windows, все доступные XDMCP-серверы при XDMCP broadcast и т. д.

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

Как работает сортировка у Реддита

Reading time4 min
Reach and readers9.3K
Сейчас на хабре продолжают обсуждать сортировки и рейтингования сущностей (записей, постов, комментов), так что я сам этим заинтересовался и, как раз находясь на реддите, решил узнать как там работает сортировка, и наткнулся на отличную и короткую статью.

Этот пост — продолжение разбора алгоритмов сортировки (в прошлый раз был Hacker News). В этот раз, мы разберем как работает сортировка постов и комментариев на Reddit. Алгоритмы у Реддита достаточно простые, чтобы понять их и реализовать.

Первая часть этой записи будет сфокусирована на сортировке постов, а вторая на сортировке комментариев. Они довольно сильно различаются, и за идеей способа сортировки комментариев стоит Randall Munroe (автор xkcd).

Разбираем сортировку постов

Реддит open-source-ный проект и его код полностью доступен на гитхабе. Он написан на питоне, исходники вы можете увидеть тут. Их алгоритмы сортировки написаны под Pyrex, для дальнейшей компиляции (трансляции) в C-код. Pyrex был выбран из-за производительности. Я переписал их реализации на чистый питон, чтобы они легче читались.
Читать дальше →

Выводим деньги с PayPal на карту: Инструкция для чайников

Reading time3 min
Reach and readers501K
Потребовалось мне вывести деньги с PayPal в России, только вот через посредников работать не хотелось.
Пришлось получить карту Payoneer для вывода PayPal на эту карту. Сколько не искал, так и не нашел полноценной, пошаговой инструкции.
Поэтому пишу сам.



ВНИМАНИЕ! Все ниженаписанное является де-юре нарушением законодательства РФ и Украины, и вообще выдумкой автора и плодом работы в фотошопе. Применяя описанное на практике, вы действуете на свой страх и риск, и ни автор, на администрация сайта не несет ответственности за ваши действия.
Читать дальше →

Git Workflow

Reading time6 min
Reach and readers123K

1 Вступление



В топике освещаются не столько подробности работы с git, сколько его отличия от схемы разработки других систем контроля версий, и общий подход (выработанный по большей части личным опытом и Git Community Book) к работе.


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

Git Wizardry

Reading time17 min
Reach and readers455K
1 Введение


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

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

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

Information

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