Search
Write a publication
Pull to refresh
1
0
Send message

Я в одиночку отрефакторил 15 тысяч строк легаси. Это были худшие две недели в жизни

Reading time10 min
Views104K


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

Изменения модальной презентации экранов в iOS 13

Reading time9 min
Views20K

Всем привет!


Меня зовут Илья, я из Tinkoff.ru. Я перевел для вас статью от Geoff Hackworth про то, как изменился стиль модальной презентации в iOS 13, на что это повлияло и как работает обратная совместимость с предыдущими версиями iOS и Xcode.


image

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

Как CSS Grid меняет представление о структурировании контента

Reading time8 min
Views18K
Каждый, кто хотя бы немного занимался созданием веб-сайтов, знает, что теги <div> — являются важным строительным блоком для контроля над макетом.

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



С приходом CSS Grid, нам больше не нужно полагаться на элементы <div> для создания структуры страницы или даже более сложного компонента. Структура буквально определяется родительским элементом, а не тем, как расположено содержимое внутри него.

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

React + Mobx: в чём смысл?

Reading time16 min
Views151K
Сегодня я хочу рассказать вам о том, как на нашем проекте состоялся переход на Mobx, какие преимущества это даёт. Также будет показан типовой проект и даны пояснения по основным вопросам. Но сначала вводные.

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

Full-stack TypeScript Apps

Reading time14 min
Views19K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Full-Stack TypeScript Apps — Part 1: Developing Backend APIs with Nest.js" автора Ana Ribeiro.


Часть 1: Разработка серверного API с помощью Nest.JS


TL;DR: это серия статей о том, как создать веб-приложение TypeScript с использованием Angular и Nest.JS. В первой части мы напишем простой серверный API с помощью Nest.JS. Вторая часть этой серии посвящена интерфейсному приложению с использованием Angular. Вы можете найти окончательный код, разработанный в этой статье в этом репозитории GitHub


Что такое Nest.Js и почему именно Angular?


Nest.js это фреймворк для создания серверных веб-приложений Node.js.


Отличительной особенностью является то, что он решает проблему, которую не решает ни один другой фреймоворк: структура проекта node.js.

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

SwiftUI для прошлого конкурсного задания Telegram Charts (март 2019 года): все просто

Reading time21 min
Views8.2K


Сразу начну с замечания о том, что приложение, о котором пойдет речь в этой статье, требует Xcode 11 и MacOS Catalina , если вы хотите использовать Live Previews, и Mojave, если будете пользоваться симулятором. Код приложения находится на Github.

В этом году на WWDC 2019, Apple анонсировала SwiftUI, новый декларативный способ построения пользовательского интерфейса (UI) на всех устройствах Apple. Это практически полное отступление от привычного нам UIKit, и я — как и многие другие разработчики — очень хотела посмотреть этот новый инструмент в действии.

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

Кто несет ответственность за качество тестирования приложения? 10 причин попадания ошибки в продакшен

Reading time5 min
Views12K

Подготовили для вас перевод статьи Дмитрия Ярыгина, QA Engineer с опытом работы в крупных проектах мира более 8 лет, преподавателя курса «Mobile QA Engineer» в OTUS. Интересно развиваться в данном направлении? Приглашаем пройти бесплатный двухдневный интенсив «Введение в автоматизацию тестирования мобильных приложений на Selenium и Appium».



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


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

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

Генератор музыкальных каверов на Python в Blender

Reading time7 min
Views10K
В данной статье я расскажу о моём аддоне к блендеру, о причинах, побудивших меня к его созданию, процессе разработки и об «успехе» на YouTube.


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

Какой серверный язык выбрать…мобильному разработчику

Reading time10 min
Views12K
Вы скажете, какое вообще дело мобильному разработчику до того, на чем написан бэкенд. Главное, чтобы API туда был удобный, понятный, гибкий. А нам так не кажется.

Мы в AppsConf думаем, что всем нам необходимо иногда выходить за пределы мобильной разработки и прокачивать шляпку буквы T в модели T-shape. Вот, например, познакомиться с серверными языками чуть глубже, чем: «Я слышал, что Ruby умер». И чуть шире — то есть не только с популярными, но и из вторых рядов и даже андеграундными.

Чтобы и вы прониклись идеей Introductory-трека, записали интервью с Никитой Соболевым. Собирались говорить о языках программирования, а получилось о программистах. Заходите под кат, если считаете, что лучше быть просто хорошим разработчиком, а не Android- или iOS-разработчиком, а особенно, если не согласны с этим. Пятница — самое время поспорить.
Читать дальше →

Финансирование Фондом развития языка D: Новые платформы и новые гранты…

Reading time4 min
Views1.3K
Когда я впервые объявил о создании HR-фонда здесь, в блоге в апреле, команда Фондом развития языка D вела переговоры о найме одного или нескольких человек, чтобы конкретизировать спецификацию и реализацию shared (атрибут межпоточного взаимодействия). Такая работа требует очень специфических навыков, которыми обладают лишь немногие люди в кругу D. Пока что мы не смогли найти ни одного из них, у кого было бы достаточно времени. Между тем, HR-Фонд ждет, когда будет использован.

Программирование для мобильных с помощью LDC


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

TypeScript. Мощь never

Reading time6 min
Views94K
Когда я впервые увидел слово never, то подумал, насколько бесполезный тип появился в TypeScript. Со временем, все глубже погружаясь в ts, стал понимать, какой мощью обладает это слово. А эта мощь рождается из реальных примеров использования, которыми я намерен поделиться с читателем. Кому интересно, добро пожаловать под кат.
Читать дальше →

Unix-пароль Кена Томпсона

Reading time2 min
Views49K
Где-то в 2014 году в дампах исходного дерева BSD 3 я нашла файл /etc/passwd с паролями всех ветеранов, таких как Деннис Ричи, Кен Томпсон, Брайан В. Керниган, Стив Борн и Билл Джой.

Для этих хэшей использовался алгоритм crypt(3) на основе DES — известный своей слабостью (и с длиной пароля максимум 8 символов). Поэтому я подумала, что будет легко взломать эти пароли ради удовольствия.

Берём стандартные брутеры john и hashcat.
Читать дальше →

Новый проект братьев Дуровых: Telegram Open Network

Reading time12 min
Views89K
Приближается момент полномасштабного запуска самого ожидаемого криптопроекта, который действительно может изменить мир. К началу ноября сеть TON будет запущена и все смогут в полной мере оценить её достоинства и начать использовать по назначению: разработчики — создавать полезные и прибыльные приложения, пользователи — использовать функционал полезных приложений, с лёгкостью оплачивая его, при необходимости.

Уже запущена тестовая сеть и на официальном сайте есть два интересных документа, проливающих свет на то, как будет функционировать этот проект. Это описание TON, 132 страницы (ссылки на страницы в тексте указаны в круглых скобках, (45)) и описание блокчейна, 120 страниц (ссылки на страницы указаны в квадратных скобках, [55]). Виртуальная машина и язык программирования смарт-контрактов в этой статье рассматриваться не будут, кому нужно — разберёт сам, а кто не разберёт — тому не нужно.

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

Итак, что такое Telegram Open Network (TON)?


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

Разбор Wechat-платежей

Reading time7 min
Views10K
Хотя рынок 3rd party payments в КНР крайне обширен, свои электронные кошельки имеются у любого производителя телефонов, каждого сотового оператора, а в их рейтингах встречаются десятки названий, не будет преувеличением сказать, что рассматривая электронные платежные системы, можно ограничиться двумя компаниями — Tencent и Alibaba. По данным 3mbang на рынке мобильных платежей в 2018 году Алипею принадлежало 52,5% рынка, Тенсенту — 36,7% (по числу совершенных транзакций с использованием мобильных терминалов). Если же считать не только телефоны, но и все электронные устройства, то статистика выглядит чуть иначе — 44,5% у Алипея и 30,3% у Тенсента. В любом случае, при мысли «мне надо подключить электронные платежи» у любого начинающего (или продвинутого) предпринимателя в голове возникнут эти два названия. И в 99% случаев этого хватит — идет ли речь об открытии ИП по торговле обувью, лотке с лапшой на улице или же серьезном сайте с миллионами посетителей. Все иные платежи — да, они желательны, у них есть свои преимущества, но базовый набор — это вот эти два. Их и рассмотрим подробно.
Читать дальше →

TON: рекомендации и лучшие практики

Reading time11 min
Views7.3K

Эта статья является переводом документа, опубликованного на странице блокчейна TON: smc-guidelines.txt. Возможно кому-то это поможет сделать шаг в сторону разработки для этого блокчейна. Также, в конце я сделал краткое резюме.

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

Что лучше выбрать в 2020 году — React или Vue?

Reading time6 min
Views97K
JavaScript-фреймворки стали неотъемлемой частью каждого современного веб-проекта. Существует множество подобных фреймворков, в результате разработчикам постоянно приходится задаваться вопросом о том, что выбрать. Искать ответ на этот вопрос придётся и в 2020 году.

image

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

  • Что лучше подойдёт для моего следующего проекта?
  • Какой из фреймворков обладает более высокой производительностью?
  • Что популярнее среди разработчиков?
  • Что лучше подходит для небольших веб-приложений?
  • Какой из фреймворков надёжнее?
Читать дальше →

«Алгебраические эффекты» человеческим языком

Reading time12 min
Views13K
Комментарий от переводчика: Это перевод замечательной статьи Дэна Абрамова (Dan Abramov), являющегося контрибутором React. Его примеры написаны для JS, но будут одинаково понятны разработчикам на любом языке. Идея общая для всех.

Вы слышали об алгебраических эффектах?


Мои первые попытки выяснить, кто они такие и почему они должны меня волновать, оказались безуспешными. Я нашел несколько PDF-ов, но они еще больше меня запутали. (Я почему-то засыпаю во время чтения академических статей.)


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



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

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

Подготовка данных в Data Science-проекте: рецепты для молодых хозяек

Reading time10 min
Views23K


В предыдущей статье я рассказывала про структуру Data Science-проекта по материалам методологии IBM: как он устроен, из каких этапов состоит, какие задачи решаются на каждой стадии. Теперь я бы хотела сделать обзор самой трудоемкой стадии, которая может занимать до 90% общего времени проекта: это этапы, связанные с подготовкой данных -сбор, анализ и очистка.

В оригинальном описании методологии Data Science-проект сравнивается с приготовлением блюда, а аналитик - с шеф поваром. Соответственно, этап подготовки данных сравнивается с подготовкой продуктов: после того, как на этапе анализа бизнес-задачи мы определились с рецептом блюда, которое будем готовить, необходимо найти, собрать в одном месте, очистить и нарезать ингредиенты. Соответственно, от того, насколько качественно был выполнен этот этап, будет зависеть вкус блюда (предположим, что с рецептом мы угадали, тем более рецептов в открытом доступе полно). Работа с ингредиентами, то есть подготовка данных - это всегда ювелирное, трудоемкое и ответственное дело: один испорченный или недомытый продукт - и весь труд впустую.
Читать дальше →

Дробное броуновское движение

Reading time9 min
Views8K

Введение


fBM расшифровывается как Fractional Brownian Motion (дробное броуновское движение). Но прежде чем начать говорить о природе, фракталах и процедурных рельефах, давайте на минуту углубимся в теорию.

Броуновское движение (Brownian Motion, BM), просто, без «дробности» — это движение, при котором положение объекта с течением времени меняется со случайными инкрементами (представьте последовательность position+=white_noise();). С формальной точки зрения BM является интегралом белого шума. Эти движения задают пути, которые являются случайными, но (статистически) самоподобными, т.е. приближенное изображение пути напоминает весь путь. Fractional Brownian Motion — это схожий процесс, в котором инкременты не полностью независимы друг от друга, а в этом процессе существует некая память. Если память имеет положительную корреляцию, то изменения в заданном направлении будут иметь тенденцию к будущим изменениям в том же направлении, и путь при этом будет плавнее, чем при обычном BM. Если память имеет отрицательную корреляцию, то за изменением в положительную сторону с большой вероятностью последует изменение в отрицательную, и путь окажется гораздо более случайным. Параметр, управляющий поведением памяти или интегрированием, а значит и самоподобием, её размерностью фрактала и спектром мощности, называется показателем Хёрста и обычно сокращается до H. С математической точки зрения H позволяет нам интегрировать белый шум только частично (допустим, выполнить только 1/3 интегрирования, отсюда и «дробность» в названии) для создания fBM под любые нужные нам характеристики памяти и внешний вид. H принимает значения в интервале от 0 до 1, которые описывают, соответственно, грубое и плавное fBM, а обычное BM получается при H=1/2.


Здесь функция fBM() использована для генерации рельефа, облаков, распределения деревьев, вариаций их цветов и деталей крон. «Rainforest», 2016: https://www.shadertoy.com/view/4ttSWf
Читать дальше →

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

Reading time7 min
Views54K
После того, как я изложил свою историю «трудоустройства» в Яндекс в комменте к нашумевшей заметке «Как я проработала 3 месяца в Я.Маркете и уволилась», было бы несправедливо утаить и ту пользу, которую я вынес из своего опыта Яндекс.Собеседования.

В мои рабочие обязанности входит техническое интервьюирование кандидатов на позицию Fullstack JavaScript/TypeScript Developer, активно этим делом (стоит ли говорить, что слегка поднадоевшим?) я занимаюсь больше года, за плечами более 30 технических интервью.

Раньше на техническом интервью я задавал кандидату довольно бестолковые вопросы аля «что такое замыкание», «как в JavaScript реализуется наследование», «вот есть такая-то таблица в БД с такими-то индексами, расскажите, пожалуйста, как можно ускорить такой-то запрос», которые хоть и помогали выявить инженерные способности кандидата, но совершенно не позволяли сделать вывод о том, насколько хорошо человек сможет решать задачи и насколько быстро он сможет разобраться в уже существующем коде. Что не могло не привести к печальным последствиям…

Но всё поменялось после того, как я прошёл четыре круга технических собеседований в Яндексе.
Читать дальше →

Information

Rating
Does not participate
Location
Херсон, Херсонская обл., Украина
Registered
Activity