Pull to refresh
2
0
Send message

Классика фантастики и фэнтези, которая лишь недавно добралась до русскоязычного читателя

Reading time 6 min
Views 57K

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

Читать далее
Total votes 124: ↑117 and ↓7 +110
Comments 22

Парочка компактных обзоров универсальных «полочников»

Reading time 3 min
Views 11K

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

Сегодня возвращаемся к обзорам акустики и смотрим на активные полочники Klipsch The Fives и классические ELAC Solano BS 283 за аналогичную сумму.

Читать далее
Total votes 11: ↑8 and ↓3 +5
Comments 14

JavaScript: немного об интернационализации и локализации веб-приложений

Reading time 18 min
Views 11K


Привет, друзья!


В данной статье я хочу рассказать вам об Internationalization API — интерфейсе, предоставляемом браузером, позволяющем выполнять интернационализацию и локализацию веб-приложений.


Статья состоит из 2 частей: теоретической и практической. В теоретической части мы кратко рассмотрим возможности, предоставляемые Internationalization API. В практической — создадим пример локализованного приложения с помощью разработанной мной утилиты.

Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 2

Инструменты обработки OLAP-запросов для Big Data

Reading time 11 min
Views 12K


Введение


Эта статья является компиляцией другой статьи. В ней я намерен сконцентрироваться на инструментах для работы с Big data, ориентированных на анализ данных.

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

Существует множество инструментов, используемых для работы с данными, каждый из которых имеет свои преимущества и недостатки. Большинство из них ориентировано на OLAP, но некоторые также оптимизированы для OLTP. Часть из них использует стандартные форматы и сосредоточена только на выполнении запросов, другие используют свой собственный формат или хранилище для передачи обработанных данных в источник в целях повышения производительности. Некоторые из них оптимизированы для хранения данных с использованием определенных схем, например «звезда» или «снежинка», но есть и более гибкие. Подводя итог, имеем следующие противопоставления:

  • Хранилище данных против Озера
  • Hadoop против Автономного хранилища
  • OLAP против OLTP
  • Движок запросов против OLAP механизмов


Мы также рассмотрим инструменты для обработки данных с возможностью выполнения запросов.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 6

PostgreSQL Antipatterns: уникальные идентификаторы

Reading time 4 min
Views 27K
Достаточно часто у разработчика возникает потребность формировать для записей таблицы PostgreSQL некие уникальные идентификаторы — как при вставке записей, так и при их чтении.


Таблица счетчиков


Казалось бы — чего проще? Заводим отдельную табличку, в ней — запись со счетчиком. Надо получить новый идентификатор — читаем оттуда, чтобы записать новое значение — делаем UPDATE

Так делать не надо! Потому что завтра же вам придется решать проблемы:

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

10 советов схемотехнику

Reading time 20 min
Views 114K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Total votes 212: ↑210 and ↓2 +208
Comments 244

Яндекс записал звуки ретрокомпьютеров

Reading time 8 min
Views 12K


Каждый день, когда Музей Яндекса открыт, я как сотрудник музея включаю все наши экспонаты: компьютеры и другую технику. Подолгу задерживаться у каждого устройства нет времени — не всегда можно визуально удостовериться, что компьютер включился. Помогают звуки: я помню «корректное» звучание каждого из экспонатов. В детстве эти звуки казались чем-то магическим. Я подумал — почему бы не сохранить звуки компьютеров для истории и не добавить их на сайт музея, чтобы оживить страницы экспонатов. Расскажу, как мы это делали и какую технику использовали.
Total votes 46: ↑46 and ↓0 +46
Comments 43

5 практических рекомендаций по использованию React-хуков в продакшне

Reading time 8 min
Views 14K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что в компании commercetools приняли на вооружение хуки React в начале 2019 года — в момент их появления в React 16.8.0. С тех пор программисты компании постоянно перерабатывают свой код, переводя его на хуки. Хуки React позволяют, не используя классы, работать с состоянием компонентов и пользоваться другими возможностями React. Используя хуки, можно, работая с функциональными компонентами, «подключаться» к событиям жизненного цикла компонентов и реагировать на изменения их состояния.


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

Intersection Observer API: примеры использования

Reading time 7 min
Views 79K


Доброго времени суток, друзья!

Обзор


Intersection Observer API (IOA) позволяет приложению асинхронно наблюдать за пересечением элемента (target) с его родителем (root) или областью просмотра (viewport). Другими словами, этот API обеспечивает вызов определенной функции каждый раз при пересечении целевого элемента с root или viewport.

Примеры использования:

  • «ленивая» или отложенная загрузка изображений
  • бесконечная прокрутка страницы
  • получение информации о видимости рекламы для целей расчета стоимости показов
  • запуск процесса или анимации, находящихся в поле зрения пользователя

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

Что в Белизне тебе моей или Справочное пособие по гипохлориту натрия («хлорке»)

Reading time 31 min
Views 213K
Не передать, насколько мне приятно это писать. Данная статья полностью профинансирована подписчиками канала LAB66. Ни один производитель описанных в тексте средств -  своего участия не проявил, так что никакой скрытой рекламы, чиcтый альтруизм и потребительский интерес :)

Сегодня читаем о самом простом, самом доступном и самом действенном антисептике — про гипохлорит натрия (он же «Белизна»). Совместимость с различными материалами, техника безопасности, свойства и эффективность не только против коронавируса, но и против страшной плесени и ее микотоксинов. В качестве «вишенки» — контрольная закупка магазинных отбеливателей и оценка их состава. Чтобы узнать как в эпоху пандемии нас дурят производители бытовой химии и прочий «менеджерский брат» — идем под кат. И обязательно закидываем в закладки. Эта информация пригодится еще не раз ;)


Даешь нормальную Белизну!
Total votes 179: ↑176 and ↓3 +173
Comments 73

Как сервис Estimate помогает автоматизировать процесс оценки и узнать стоимость IT-проекта

Reading time 6 min
Views 11K
Как для бизнеса, так и для IT-компании оценка – один из самых важных этапов в начале работы над проектом. Бизнес готов сотрудничать с тем подрядчиком, который назовет стоимость объективно и быстро, кроме того, заказчикам нужна максимальная прозрачность оценки.

При этом на рынке существует значительный разброс цен: например, одна IT-компания оценивает работу в 300 тысяч рублей, а другая – в 900 тысяч. Стоимость зависит от множества факторов: способа реализации, опыта экспертов, глубины оценки и т.д.

Мы в SimbirSoft уже пять лет используем собственный сервис для автоматизации процесса оценки – Estimate. Мы создали его для того, чтобы упростить работу специалистов, которые занимались оценкой вручную – потому что количество запросов на разработку постоянно росло, а опытные эксперты одновременно были нужны и в оценке, и в проектной работе. Мы постепенно улучшали Estimate и в результате получили инструмент, который учитывает особенности разработки IT-систем любой сложности. В статье расскажем, как вы можете с его помощью ускорить оценку и учесть возможные риски.

Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 7

Находки аудиомана: где послушать музыку ушедших эпох

Reading time 3 min
Views 10K
Мы уже писали о различных музыкальных находках: картах звуков и дереве жанров. Сегодня продолжаем тему — говорим о сервисах, которые позволяют погрузиться в атмосферу прошлых лет.

Надеемся, что подборка поможет вам разнообразить фон во время работы из дома.

Total votes 23: ↑23 and ↓0 +23
Comments 7

Шаблон backend сервера на Golang — часть 1 (HTTP сервер)

Reading time 17 min
Views 31K

UPD. Ссылка на новый репозиторий проекта с поддержкой развертывания в Kubernetes


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


Шаблон включает:


  • Передачу параметров сервера через командную строку github.com/urfave/cli
  • Настройка параметров сервера через конфигурационный файл github.com/sasbury/mini
  • Настройка параметров TLS HTTP сервера
  • Настройка роутера регистрация HTTP и prof-обработчиков github.com/gorilla/mux
  • Настройка уровней логирования без остановки сервера github.com/hashicorp/logutils
  • Настройка логирования HTTP трафика без остановки сервера
  • Настройка логирования ошибок в HTTP response без остановки сервера
  • HTTP Basic аутентификация
  • MS AD аутентификация gopkg.in/korylprince/go-ad-auth.v2
  • JSON Web Token github.com/dgrijalva/jwt-go
  • Запуск сервера с ожиданием возврата в канал ошибок
  • Использование контекста для корректной остановки сервера и связанных сервисов
  • Настройка кастомной обработки ошибок github.com/pkg/errors
  • Настройка кастомного логирования
  • Сборка с внедрением версии, даты сборки и commit

Вторая часть посвящена прототипированию REST API.


Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Ссылка на репозиторий проекта.

Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 7

Домашний кинотеатр на Raspberry

Reading time 6 min
Views 117K
Так случилось, что решил я упростить себе вопрос он-лайн просмотра фильмов, вариант стандартного смарт ТВ меня не устраивал, а постоянно торчащий кабель HDMI для подключения к ноутбуку раздражал. Решение моей проблемы я увидел в приобретении Raspberry Pi 4, который можно аккуратно спрятать за корпусом телевизора.
Читать дальше →
Total votes 32: ↑26 and ↓6 +20
Comments 164

Взаимодействие с NIDD через SCEF с использованием утилиты Postman. Краткий экскурс в SCEF и его возможности

Reading time 13 min
Views 7K
Данная статья позволит тем, кто еще только начинает свою разработку или уже применяет технологию NB-IoT, составить представление о том, как можно удаленно взаимодействовать с NB-IoT устройством.

image

Краткий обзор


NB-IoT легко наступает на пятки 2G и зарекомендовал себя как энергоэффективный стандарт сотовой связи, который уже в обозримом будущем будет способен потеснить укрепившийся на своей позиции 2G. Причиной тому является возможность гибко подойти к вопросу энергопотребления одной из самых потребляющих частей устройства – радиопередатчику. Если не вдаваться глубоко в детали, то вместе с NB-IoT у нас появилась возможность гибко настраивать режимы работы устройства за счет настройки расписания выхода устройства на связь и взаимодействия устройства с серверами в сети Интернет.

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

Предполагается, что у читателя есть примерное представление о технологии NB-IoT и имеется минимальный опыт взаимодействия.
Статья регулярно дополняется и обновляется

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

Собеседования по алгоритмам: теория vs. практика

Reading time 17 min
Views 45K
tl;dr За последние десятилетия мода на собеседования программистов менялась несколько раз, и каждая из них выглядит нелепо в ретроспективе. Либо мы наконец-то нашли настоящий секрет эффективных собеседований, либо увлеклись очередным модным течением, которое через десять-двадцать лет покажется столь же нелепым.

Когда я спрашиваю людей в модных больших технологических компаниях, почему на собеседовании так обязательно спрашивать об алгоритмах, самый распространённый ответ — что-то вроде: «У нас такой масштаб, мы не можем позволить, чтобы кто-то случайно написал функцию O(n^2) и повалил всю систему»1. Что особенно забавно, в последнее время я немало применял на практике эти алгоритмы и решал реальные проблемы, но не могу пройти собеседования, где о них спрашивают! Думаете, я проваливаю половину собеседований или что-то в этом роде? Нет, больше половины. Я участвовал примерно в 40 «настоящих» собеседованиях и прошёл, может, одно или два. Или ни одного2.

Когда я написал черновик этой статьи, друзья посчитали его занудным, потому что я провалил слишком много собеседований. Они говорят, нужно свести все неудачи в таблицу, потому что никто не станет читать десять страниц текста с длинным перечнем неудач. Хороший совет. Уже работаю над таблицей.
Читать дальше →
Total votes 36: ↑35 and ↓1 +34
Comments 42

Как перестать растрачивать время разработчиков на технический долг

Reading time 5 min
Views 9.8K


Вы знаете, каково это. Впихнуть всё необходимое в спринт и так весьма непросто, а ведь ещё нужно где-то найти дополнительные 10–20% времени разработчиков на возврат технического долга. Если вы когда-либо отстаивали необходимость выкраивания времени на это, то вы знаете, что это походит на крестовый поход эпических масштабов.


Но сделать это можно, и в этом руководстве мы выясним, как именно.

Читать дальше →
Total votes 18: ↑16 and ↓2 +14
Comments 5

Подарки для внимательных слушателей: какие аудиопасхалки прятали в «pre-gap» на Audio CD

Reading time 3 min
Views 6.8K
Мы уже рассказывали про сюрпризы, которые хранят в себе виниловые пластинки. Это был винил 1901 года, композиции Pink Floyd и The B-52's, небольшие программы и даже оптические эксперименты.

Нам понравился ваш отклик в комментариях и мы решили расширить тему. Посмотрим как на винил, так и на другие форматы — и поговорим о новых «пасхалках», скрытых на самых разных альбомах.

Total votes 14: ↑13 and ↓1 +12
Comments 4

Как я попал в ThoughtWorks или образцовое интервью

Reading time 11 min
Views 7.3K
image

Не кажется ли вам странным то, что когда вы собираетесь поменять место работы и возникает необходимость пройти интервью, то в первую очередь вы думаете «надо подготовиться к интервью». Прорешать задачи на HackerRank, почитать Crack the coding interview, зазубрить как устроен ArrayList и чем она отличается от LinkedList. Ах да, еще сортировки спросить могут, и явно будет непрофессионально сказать, что quick sort скорее всего будет лучшим выбором.
Но постойте, вы ведь программируете 8 часов в день, решаете интересные и нетривиальные задачи, и на новом месте работы будете делать плюс-минус тоже самое. Но тем не менее, чтобы пройти интервью необходимо как-то дополнительно готовиться, даже не оттачивать ежедневные навыки, а выучить то, что вам не понадобилось ни на текущем месте работы, ни вряд ли понадобиться на следующем. На ваши возражения о том, computer science у нас в крови, и разбуди нас посреди ночи мы обязаны написать с закрытыми глазами на наволочке обход дерева в ширину даже не приходя в сознание, я отвечу, что если я буду устраиваться в цирк, и моим главным трюком будет именно это — то пожалуй да, я согласен. Нужно этот навык проверить.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Comments 11

[По докам] Flutter. Часть 2. Для iOS разработчиков

Reading time 22 min
Views 13K
После длительного перерыва я продолжу рассказывать о популярном фреймворке Flutter в формате «вопрос — ответ». Первую статью для Android-разработчиков вы можете найти здесь, а сегодня будет полезный материал для разработчиков под iOS.

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



Flutter. Часть 1. Для Android-разработчиков
Flutter. Часть 2. Для iOS-разработчиков
Flutter. Часть 3. Для разработчиков React Native
Flutter. Часть 4. Для веб-разработчиков
Flutter. Часть 5. Для Xamarin.Forms-разработчиков
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Comments 10

Information

Rating
Does not participate
Registered
Activity