Pull to refresh
0
0

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

Send message

Cowon D2: музыкальный долгожитель

Reading time 5 min
Views 19K
Написать эту статью меня побудил недавний разговор про новинки на рынке смартфонов. Один из знакомых рассказывал о том, как приобрел очередную, какая она замечательная и не похожая на другие. Как удобно на ней слушать музыку с новыми беспроводными наушниками и как она замечательно звучит. Поглядел, послушал, сравнил, не впечатлился.

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



Собственно, далее речь пойдет о представителе, постепенно вымирающего, вида мультимедийных плееров. И о том, как же ему удалось продержаться у меня так долго.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 35

Проблемы даты и времени в JS

Reading time 3 min
Views 87K


Редкому программисту случается избежать работы с датой и временем. Вообще, дата/время — базовое понятие и в основной массе языков существуют встроенные механизмы работы с этим типом данных. Казалось бы, JS не исключение, есть встроенный тип Date, есть куча функций в прототипе, однако…
Читать дальше →
Total votes 52: ↑38 and ↓14 +24
Comments 55

TypeScript: худший лучший язык программирования

Reading time 13 min
Views 78K

На конференции FrontedConf 2021 Андрей Старовойт показал плюсы и минусы TypeScript. Если вы сомневаетесь, стоит ли его использовать — эта статья для вас, чтобы вы смогли для себя всё решить. Если вы уже любите и используете TypeScript, то надеюсь, вам тоже будет интересно.

Все преимущества и недостатки языка описаны, конечно, через призму опыта Андрея. Несмотря на то, что последние 7 лет он работает в компании JetBrains над продуктом WebStorm на Java Kotlin, пишет он и на TypeScript. Попутно много смотрит на код других людей, пытаясь понять, что с ним можно сделать внутри WebStorm и почему типы выбились неправильно. А также — какие инспекции можно применить так, чтобы люди стали счастливы, а их код — лучше.

Читать далее
Total votes 64: ↑57 and ↓7 +50
Comments 42

React: лучшие практики

Reading time 19 min
Views 73K


Разрабатываете на React или просто интересуетесь данной технологией? Тогда добро пожаловать в мой новый проект — Тотальный React.

Введение


Я работаю с React уже 5 лет, однако, когда дело касается структуры приложения или его внешнего вида (дизайна), сложно назвать какие-то универсальные подходы.

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

Данная статья представляет собой своего рода набор правил разработки React-приложений, доказавших свою эффективность для меня и команд, с которыми я работал.

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

Предлагаемые подходы не являются истинной в последней инстанции. Это всего лишь мое мнение. Существует много разных способов решения одной и той же задачи.
Читать дальше →
Total votes 13: ↑9 and ↓4 +5
Comments 6

Проект Lenergy, как переосмысление портативных источников питания

Reading time 7 min
Views 20K
Привет, Хабр! Хочу рассказать о своём виденье универсального программируемого портативного источника энергии. Как я к этому пришёл, каким в итоге проект стал в железе, для чего он нужен и варианты применения, а так же его дальнейшее развитие. Одной статьи будет явно недостаточно, поэтому при должном интересе к этому проекту следующая статья будет посвящена моментам разработки и использованных решений во всех подробностях. Прошу под кат, я очень хочу вам рассказать о своём проекте!


Читать дальше →
Total votes 81: ↑78 and ↓3 +75
Comments 91

Мессенджер будущего

Reading time 11 min
Views 27K


Довольны ли вы современной ситуацией со средствами связи? Обычный проводной телефон уже забыт, ведь у каждого есть сотовый телефон для звонков и SMS, однако для дальних звонков дешевле использовать мессенджеры, которые ещё и функциональнее. И вот тут появляется первая проблема: ваши знакомые рассеяны по разным мессенджерам и соцсетям, приходится либо прикладывать усилия по агитации окружающих, либо заводить у себя зоопарк учеток и приложений. А, ещё про электронную почту чуть не забыл.


Дискомфортная ситуация — не правда-ли? Но всё можно изменить.


Читать дальше →
Total votes 26: ↑20 and ↓6 +14
Comments 196

Почему ваш любимый мессенджер должен умереть

Reading time 18 min
Views 328K
image
Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

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

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

image

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


Читать дальше →
Total votes 260: ↑230 and ↓30 +200
Comments 357

Ванильный JavaScript и HTML. Никаких фреймворков. Никаких библиотек. Никаких проблем

Reading time 9 min
Views 31K

Используете для создания приложений Vue, React, Angular или Svelte? Я использую, и если вы тоже, и уверен, что вам уже давно не приходилось писать приложение, которое выводит информацию без этих прекрасных инструментов.

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

При выводе небольшого количества информации вам может потребоваться использовать HTML, JavaScript и DOM без каких-либо инструментов. Недавно я написал несколько базовых примеров, которые иллюстрируют основы веб-разработки и помогают в изучении DOM, HTML, JavaScript и принципов работы браузера. Этот опыт позволил мне понять, что другие разработчики — возможно, вы, — будут рады вспомнить, как выводить информацию без использования библиотек.

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

Давайте рассмотрим разные способы вывода информации. И держите под рукой эту документацию!
Читать дальше →
Total votes 55: ↑48 and ↓7 +41
Comments 42

Коты в коробочках, или Компактные структуры данных

Reading time 12 min
Views 28K

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

Читать дальше →
Total votes 127: ↑127 and ↓0 +127
Comments 43

Чему меня, как разработчика, научили аварии в космосе

Reading time 8 min
Views 32K

Оригинал: статья «What I learned as a developer from accidents in space», Андрея Ситника, из блога Evil Martians «Martian Chronicles»

Андрей Ситник, автор PostCSS и Автопрефиксера, сделал подборку историй, связанных с освоением космоса Советским Союзом. Вы узнаете, какие уроки из них извлёк Андрей, чтобы вырасти как разработчик и участник опенсорс-движения. Неудачная стыковка, драматический вход в атмосферу и уникальный переход вдоль поручня между космическими кораблями — какое отношение всё это имеет к современной веб-разработке? Обо все этом читайте в посте!

Исследования космоса интересовали меня, сколько я себя помню. Люди, знавшие меня лично, слышали рассказов о космосе больше, чем им хотелось бы. До того, как присоединиться к Evil Martians, я администрировал русскоязычную версию Википедии, и одним из моих любимых увлечений была редактура связанных с космосом статей. Я ездил наблюдать за запусками на Байконуре и мысе Канаверал, и чем больше я узнавал об усилиях по покорению космоса, тем сильнее эти знания влияли на меня как на разработчика. 

Хотя писать программы не так сложно, как строить ракеты (по большей части), но всё же мы, программные инженеры, часто работаем в больших командах, создающих сложные системы. И как исследователи космоса, иногда мы проигрываем борьбу со сложностью.
Читать дальше →
Total votes 127: ↑126 and ↓1 +125
Comments 29

Андрей Терехов: «Можно сколько угодно говорить, что американское лучше, но наша машина никогда не ломается»

Reading time 17 min
Views 75K


Завкафедрой системного программирования Матмеха СПбГУ, профессор, доктор физмат наук, президент компании «Ланит-Терком» Андрей Николаевич Терехов — о том, как делал первый в СССР транслятор языков Алгол 68 и Ада, о силе обкома КПСС и рождении «Самсона», который никогда не ломался.
Читать дальше →
Total votes 192: ↑178 and ↓14 +164
Comments 176

Три типовых ошибки в сфере безопасности, о которых должен знать каждый React-разработчик

Reading time 8 min
Views 22K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что React — это её любимая библиотека для создания интерактивных интерфейсов. React одновременно и лёгок в использовании, и достаточно хорошо защищён. Однако это не значит, что React-приложения совершенно неуязвимы. Очень легко впасть в неоправданное спокойствие, решив, что о XSS-атаках можно не волноваться из-за того, что в проекте используется React.

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



Сегодня мы поговорим о типичных уязвимостях React, о том, как находить их во время код-ревью, и о том, как от них защищаться.
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 13

История о V8, React и падении производительности. Часть 1

Reading time 8 min
Views 13K
В материале, первую часть перевода которого мы публикуем сегодня, речь пойдёт о том, как JavaScript-движок V8 выбирает оптимальные способы представления различных JS-значений в памяти, и о том, как это влияет на внутренние механизмы V8, касающиеся работы с так называемыми формами объектов (Shape). Всё это поможет нам разобраться с сутью недавней проблемы, касающейся производительности React.


Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Comments 5

Балансировка трафика между Web-серверами при помощи IP CEF на сетевом оборудовании

Reading time 3 min
Views 6.6K
Была поставлена задача о реализации отказоустойчивого решения для двух веб-серверов и, при возможности, реализация распределения нагрузки между веб-серверами, так как иногда одна база данных не справлялась со всеми запросами. Покупать специальное оборудование не было возможности, в связи с чем была придумана следующая схема. Возможно, идея неоригинальная, но в интернете ничего подобного не нашел. Топология у нас такая:

My Image
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 32

Делаем современное веб-приложение с нуля

Reading time 31 min
Views 145K
Итак, вы решили сделать новый проект. И проект этот — веб-приложение. Сколько времени уйдёт на создание базового прототипа? Насколько это сложно? Что должен уже со старта уметь современный веб-сайт?

В этой статье мы попробуем набросать boilerplate простейшего веб-приложения со следующей архитектурой:


Что мы покроем:

  • настройка dev-окружения в docker-compose.
  • создание бэкенда на Flask.
  • создание фронтенда на Express.
  • сборка JS с помощью Webpack.
  • React, Redux и server side rendering.
  • очереди задач с RQ.
Читать дальше →
Total votes 64: ↑56 and ↓8 +48
Comments 125

Ошибка выжившего

Reading time 11 min
Views 123K
«Защита» — хороший ярлык для плохих дел.
Милтон Фридман «Свобода выбирать»


Этот текст получился в результате анализа некоторых комментариев к статьям «Дефекты лайков» и «Экономика и права человека».

Интерпретируя какие-либо данные и делая выводы, некоторые комментаторы совершали типичную «ошибку выжившего».

Что такое «систематическая ошибка выжившего»? Это учет известного и пренебрежение неизвестным, но существующим.

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

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

Сплошное бронирование применить было нельзя — самолет получался слишком тяжелым. Нужно было или бронировать те места, где повреждения были, куда попали пули, либо те места, где повреждений не было. Оппоненты Вальда предлагали бронировать поврежденные места (на картинке они помечены красными точками).

image
Читать дальше →
Total votes 110: ↑73 and ↓37 +36
Comments 226

Бесшумный компьютер: только кусачки и паяльник. История успехов

Reading time 8 min
Views 148K

У нас — десктоп. Мы сидим работаем — код пишем или котиков смотрим, а этот ящик ревет рядом. У нас есть кусачки, паяльник, синяя изолента, немного проводов, чуть термоусадочного кембрика и начальные знания в электротехнике и устройстве компьютера. Можно ли как-то поковырять этот ящик, чтобы он хоть чуть тише ревел?
Можно и нужно!
Total votes 84: ↑47 and ↓37 +10
Comments 95

10 Git-команд, которые стоит знать разработчику

Reading time 4 min
Views 90K


В этой статье мы обсудим разные Git-команды, которые могут оказаться полезными для разработчика или специалиста по Big Data. Вы узнаете, как проверять, удалять и приводить код в порядок. А еще рассмотрим способы выхода из Vim и экономию времени с помощью псевдонимов Bash и конфигурации редактора Git.
Читать дальше →
Total votes 61: ↑36 and ↓25 +11
Comments 26

Двенадцать способов понять, что находишься в виртуальной реальности

Reading time 15 min
Views 121K
image

Известный польский философ и биограф Станислав Лем как-то заметил, что «Иллюзорность виртуальной реальности, находящийся в виртуальной реальности человек, может установить только путем сравнения с действительностью».

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

В данной статье я попробовал систематизировать «врожденные пороки» создаваемых людьми миров, для поиска похожих паттернов в той реальности, которая считается настоящей.
Читать дальше →
Total votes 196: ↑159 and ↓37 +122
Comments 598

С <заблокированного мессенджера> — в Matrix

Reading time 5 min
Views 20K

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


Молодой программист на свежем воздухе

Читать дальше →
Total votes 29: ↑17 and ↓12 +5
Comments 31
1

Information

Rating
Does not participate
Registered
Activity