Search
Write a publication
Pull to refresh
2
0
Send message

Исторические исходные коды, с которыми должен быть знаком каждый разработчик

Level of difficultyEasy
Reading time6 min
Views27K

Как и любая другая индустрия, сфера компьютерных технологий прошла внушительный путь развития. Благодаря упорной работе программистов прошлого сегодня мы пользуемся высококлассными компьютерами, высококачественными современными графическими интерфейсами, дружелюбными языками программирования и футуристическими веб‑приложениями в реальном времени. Изучение истории приносит удовольствие — весьма интересно наблюдать за поступательным развитием технологий с течением времени. Только подумайте, скольких трудов стоило создать современный самолет — люди прошли огромный путь от одной лишь идеи полета до настоящих летательных аппаратов. Точно так же компьютеры прошли путь от дорогостоящих машин размером с целую комнату до современных и (относительно) недорогих устройств общего назначения.

Читать далее

Как рисовать красивые соединения с помощью SVG

Level of difficultyMedium
Reading time5 min
Views15K

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

Читать далее

Тупая мелочь, поднявшая продажи на Авито на 100%-200% во время сбоя

Reading time3 min
Views18K

На авито произошел сбой отправки скидок покупателям. Но его было можно обойти и заработать на пониженной конкуренции. Как? Рассказываю в статье.

Читать далее

Эффект иностранного языка при принятии решений

Level of difficultyEasy
Reading time9 min
Views13K

Эффект иностранного языка при разрешении моральных дилемм заключается в том, что люди дают разные ответы в зависимости от того на каком языке формулируется вопрос. При этом ответ на иностранном языке чаще будет более прагматичным, чем на родном. В общем случае (не только моральных дилемм) использование иностранного языка уменьшает предвзятость (decision bias) при принятии решений. Эффект не зависит от конкретного языка, но по-видимому объясняется эмоциональным дистанцированием (которое уменьшается с ростом уровня владения языком).

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

Читать далее

C/C++ из Python (Kivy, ctypes) на iOS

Level of difficultyHard
Reading time11 min
Views2.8K
main

Ранее я писал статьи C/C++ из Python (ctypes), C/C++ из Python (Kivy, ctypes) на Android. В них описывается процесс запуска на Linux и Android. Теперь поговорим как тоже самое сделать на iOS. В этой статье речь пойдет о сборке, необходимых инструментах, механизмах отладки и установки.

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

Каким будет SEO в 2023 году: 7 главных трендов

Level of difficultyMedium
Reading time7 min
Views11K

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

Читать далее

PostgreSQL под капотом. Часть 4. Цикл бэкэнда

Reading time21 min
Views5.5K

Приветствую!

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

Кроме нее будут рассмотрены:

— Модуль для работы с транзакциями.

— Исключения в С и их реализацию.

— Клиент‑серверный протокол.

Читать далее

Оказание первой помощи — мифы и страхи

Level of difficultyEasy
Reading time4 min
Views13K

— Тут человеку плохо, помогите! Есть врач? — кричала бы я, если бы попала в ситуацию, когда человеку нужно помочь, а я не знаю, как.

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

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

Миф #1 — помощь могут оказывать только медики

Читать далее

Как я организовал продажу электронной версии Книги нормального фрилансера и с какими трудностями столкнулся

Reading time6 min
Views4.3K

Я написал Книгу нормального фрилансера. В ней поделился опытом работы проектировщиком (UX‑дизайнером) с 2006 года по сегодняшний день. На момент написания этой статьи с книгой познакомилось не меньше 2 000 человек. Десятки положительных отзывов и благодарностей — и пока ни одного негативного.

Друзья недоумевали, зачем я выкладываю книгу бесплатно на своём сайте и при этом выставляю её на продажу. Ведь так её точно никто не купит! А я хотел, чтобы, во‑первых, её мог прочитать каждый, даже если у него нет денег, а, во‑вторых, чтобы те, кто в состоянии её приобрести, могли бы меня таким образом поддержать. И вот что из этого вышло…

Читать далее

Как мы быстро запустили мобильное приложение и споткнулись о свой успех

Level of difficultyMedium
Reading time13 min
Views7K

Привет, Хабр! Мы крупная производственная компания с 50К+ сотрудников, и в 2019 году поняли, что нам нужно мобильное приложение. Срок реализации 5 месяцев. Какой стек вы бы выбрали при такой скорости? Мы выбрали нативные Kotlin и Swift. Поначалу запилили всего 6 сервисов (новости, зарплатный лист, отпуска, блоги, регистрацию опасностей, выдачу СИЗ), и даже при том, что нанесли минимальную пользу, приложение очень зашло, количество пользователей начало расти лавинообразно. И тут мы поняли, что серверная часть на node.js + PostgreSQL создана без всякой мысли о развитии и масштабировании, решала исключительно локальные задачи. Все было на неоптимальной монолитной архитектуре, развивать и поддерживать которую просто нельзя.

Расскажу, как мы решили проблему.

Читать далее

Рисуем верёвку в формате SVG при помощи JavaScript

Level of difficultyMedium
Reading time8 min
Views8K

Сегодня я расскажу о процессе, который я придумал для преобразования SVG‑контура в векторный рисунок верёвки.

Вы узнаете, как превратить показанный слева контур в верёвку справа:

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

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

Замысел

Взглянув на это фото верёвки, вы заметите, что она состоит из множества переплетённых друг с другом прядей. Визуально они делят верёвку на сегменты. 2D‑проекция каждого сегмента напоминает изогнутый многоугольник.

Наша задача будет заключаться в создании этих многоугольников при помощи JavaScript.

Читать далее

Большие данные мертвы. Это нужно принять

Level of difficultyMedium
Reading time17 min
Views75K

Уже более десяти лет тот факт, что люди с трудом извлекают из своих данных полезную информацию, сбрасывают на чересчур большой размер этих данных. «Объем собираемой информации слишком велик для ваших хилых систем», — такой нам ставили диагноз. А лекарство, соответственно, заключалось в том, чтобы купить какую‑нибудь новую причудливую технологию, которая сможет работать в больших масштабах. Конечно, после того, как целевая группа по Big Data покупала новые инструменты и мигрировала с устаревших систем, компании снова обнаруживали, что у них по‑прежнему возникают проблемы с пониманием своих данных.

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

Мир в 2023 году выглядит иначе, чем когда зазвенели первые тревожные звоночки по поводу Big Data. Катаклизм обработки информации, который все предсказывали, не состоялся. Объемы данных, возможно, немного возросли, но возможности аппаратного обеспечения росли еще быстрее. Поставщики услуг все еще продвигают свои возможности масштабирования, но люди, которые сталкиваются с ними на практике, начинают задаваться вопросом, как они вообще связаны с их реальными проблемами.

А дальше будет и того интереснее.

Читать далее

Sore query language, или 5 ошибок при первом изучении SQL

Level of difficultyEasy
Reading time8 min
Views6.5K

Эта статья о том, как аналитик изучает основы SQL, какие допускает ошибки и как старается их исправить. В статье будет то, что помогает погрузиться в SQL впервые: схемы и примеры кода, понятия и определения, проблемы и решения. Статья рассчитана на аналитиков-новичков.

Предыстория: аналитик создает отчёты в BI для директора компании «ABC». Аналитик не умеет программировать и подключается к данным по инструкции. Директор требует срочно добавить в отчёт данные из 3 источников: SAP – объем выручки от продаж; HRLink – затраты на персонал; Битрикс – время обработки заявок. 

Аналитик ставит задачу data инженеру на добавление новых данных в BI. Data инженер – единственный специалист по работе с данными в офисе из 400 человек. Он критически оценивает сроки выполнения задачи и объявляет: «Минимум – 2 недели». Такой срок директора не устраивает. Инженер предлагает аналитику альтернативное решение...

И вот какое...

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

Level of difficultyEasy
Reading time6 min
Views4.5K

Вот уже семнадцать лет я работаю графическим дизайнером. Как в найме, так и для частных заказчиков. Я не тот дизайнер, чьи работы лайкают на behance, растаскивают по доскам на pinterest и кидают референсами заказчику. Я обычный ремесленник и трудяга, продавший душу корпорации за комфортный соцпакет и стабильную зарплату. И нас таких – легион. Если вы хоть раз заказывали дизайн, вы почти наверняка имели дело с человеком вроде меня. В этой статье опишу жёстко и честно, почему работа с нами обычно строится через жопу.
И подскажу решение.

Читать далее

Манифест профессионального сотрудника

Reading time3 min
Views7.1K

1. Думать о смыслах выполняемой работы

Сотрудник всегда должен думать, зачем он делает то, что он делает, какая польза для его команды/отдела/компании от его работы. Работа по принципу «как в ТЗ написано, я так и сделал» – это непрофессиональный подход.

2. Прогнозировать результат своей работы

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

3. Уважать коллег, руководителя, подчиненных

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

Читать далее

Перевод первой части учебника Patterns.dev

Reading time11 min
Views16K

Привет! Меня зовут Айнур, и я frontend-разработчик SimbirSoft. Более 6 лет я работаю над коммерческими проектами, создаю и улучшаю интерфейсы, поэтому в работе достаточно часто использую паттерны проектирования. Неоднократно я обращался за идеями и лайфхаками к книге Patterns.dev, которая содержит очень современный взгляд на шаблоны проектирования, рендеринга и производительности JavaScript.

Авторы Patterns.dev:

Лидия Холли — штатный консультант и преподаватель по разработке программного обеспечения, которая в основном работает с JavaScript, React, Node, GraphQL. Она также занимается наставничеством и проводит личные тренинги.

Эдди Османи — технический менеджер, работающий над Google Chrome. Его команды работают над такими проектами, как Lighthouse, PageSpeed ​​Insights, Chrome User Experience Report и другими.

Материал книги будет полезен не только React-разработчикам, но и всем, кто так или иначе интересуется или сталкивается с frontend-разработкой.

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

Источник: https://www.patterns.dev/
Данный адаптированный материал распространяется на условиях лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

Читать далее

Чёрная плесень

Reading time4 min
Views49K

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

Черная плесень не результат местной Чернобыльской мутации, как кажется вполне вероятным, а была занесена, по‑видимому, воздухом. Это уже известный вид, обитающий на Гималаях высоко в горах, где она питается космическим излучением. Ей понадобилось всего пять лет (вероятнее всего и того меньше) чтобы из Гималаев добраться до Чернобыля и прижиться на новом месте. Что означает, в воздухе постоянно находятся споры таких или аналогичных одноклеточных (плесень оказалась нескольких видов). Из чего следует вывод: на нашей планете существуют организмы способные питаться радиоактивностью и выживать в преимущественно отрицательных температурах.

Читать далее

10 зрелищных клеточных автоматов с поколениями

Level of difficultyEasy
Reading time4 min
Views8.3K

На прошлой неделе мы посмотрели на 10 правил простейших клеточных автоматов, где меняли только количество соседей необходимых для рождения и выживания клетки.

Сегодня мы немного дополним характеристики «life‑like» модели и добавим ещё одну часть к правилам — поколения.

?

Написал свой сервис для удаленного управления компьютерами

Level of difficultyEasy
Reading time3 min
Views29K

Всем привет.

Я работал админом около 12 лет, за всё время для целей администрирования пользовался почти всеми известными программами для удаленного доступа, сначала TeamViewer - после внедрения их политики лицензирования и обновления, мягко говоря неудобной и жуткой дорогой (около 30 т.р. в год), пересел на AnyDesk — который был чуть хуже в плане функционала, но более терпим в плане использования, и немного меньшей ценой — около 20 т.р. за год. Но душа всё-таки не была довольна, не хватало многих функций, автоматизации, да и порой было неудобно/лень договариваться о подключении с пользователем, что бы выполнить пустяковое действие. И так пришла на ум идея создать инструмент от админа админу, что бы и интерфейс устраивал, но не был перенасыщен, и разобраться мог любой человек более менее владеющий компьютером.

Читать далее

Про микросервисы на примерах

Level of difficultyEasy
Reading time5 min
Views24K

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

И так, эта статья не для разработчиков и опытных архитекторов, а для аналитиков, которые хотят понять, а что же такое микросервисы на самом деле. Пример здесь максимально простой и не претендует на хороший стиль написания кода, чтобы его запустить не нужно обладать вообще никаким ИТ‑бэкграундом и не нужно настраивать никакие IDE.

Приступим?

Information

Rating
6,416-th
Registered
Activity