Pull to refresh
49
0
Nikita Kolmogorov @backmeupplz

АбраКодастр

Send message

17 интересных (и забавных) API для вашего проекта

Reading time7 min
Views129K


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

Читать дальше →
Total votes 44: ↑36 and ↓8+40
Comments7

Генри Бессемер и радикальные перемены в металлургии

Reading time10 min
Views14K


Сказать, что с техническим образованием в Европе в начале XIX века было плохо – ничего не сказать. Даже в Англии, стране, находившейся на острие уже явно обозначившейся даже для современников технической революции, учиться механике или химии было негде.
Собственно, поэтому Энтони Бессемер, заслуживший славу изобретателя и инженера, решил, что его сын Генри, с детства проявлявший большой интерес ко всякого рода механизмам, учиться будет в его собственной мастерской (для чего одиннадцатилетнему Генри был даже куплен, среди всего прочего, токарный станок).

Сам Энтони, в свое время, ездил учиться механике в Нидерланды, и учился он точно так же, как после учил своего сына, и точно так же, как учили ремеслу уже много столетий: он осваивал навыки работы с материалами на практике. Судя по всему, руки у Энтони росли, откуда надо, а к рукам прилагалась еще и очень хорошая голова, и в какой-то момент для талантливого двадцатилетнего паренька нашлось место в мастерских Парижа, где Энтони уже почтительно именуют инженером: его работы оптике и механике так хороши, что привлекают внимание Парижской Академии наук, да и вообще, дела основанной им в столице Франции мастерской идут в гору.
Читать дальше →
Total votes 53: ↑42 and ↓11+44
Comments13

Внедрение DDR5 будет молниеносным: к 2026 году новая память займет 90% рынка

Reading time4 min
Views21K
Согласно последнему отчету Yole Developments, внедрение новой памяти DDR5 будет происходить, по меркам сегмента, практически молниеносно. Аналитики компании считают, что уже к 2023 году сумма поставки модулей памяти нового поколения превысят $200 млрд, а к 2026 году новая память займет 90% мирового компьютерного и серверного рынка, вытеснив актуальный сейчас стандарт DDR4.



Такой взрывной рост DDR5 связывают с несколькими аспектами.

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

Второе — доминирующее положение DDR5 относительно DDR4. Согласно спецификациям, которые были разработаны ассоциацией твердотельных технологий JEDEC, стартовая частота новой памяти составляет 4800 Mhz — сейчас это верхнее значение для DDR4. В перспективе нормальной рабочей частотой модуля на широком старте технологии DDR5 будет 5500-6500 Mhz, вплоть до 8400 Mhz в стоке.

Повсеместное внедрение DDR5 начнется после выпуска производителями соответствующих материнских плат и процессоров, которые будут способны работать с новым стандартом оборудования.
Читать дальше →
Total votes 31: ↑30 and ↓1+46
Comments79

История компании Silicon Graphics

Reading time8 min
Views11K
image

Вероятно, вы слышали о компании SiliconGraphics, позже сменившей название на Silicon Graphics, Inc, а потом просто на SGI, однако из домашних пользователей её продукцией не пользовался никто, кроме самых ярых фанатов. Так получилось, потому что SGI специализировалась на производстве высокопроизводительных рабочих станций, проектировании ПО и создании суперкомпьютеров для компаний, профессионально занимающихся 3D-графикой.

На пике своего успеха в 1990-х Silicon Graphics получила статус легенды среди 3D-художников и графических дизайнеров, использовавших уникальную мощь её рабочих станций.

Наследие Silicon Graphics можно увидеть в Nintendo 64, в разработке которой компания принимала участие, а также во множестве голливудских фильмов, в том числе «Парк юрского периода», «Смерч», «Конго», «История игрушек» и многих других, но давайте не будем забегать вперёд…
Total votes 34: ↑34 and ↓0+34
Comments18

Разработчик популярного веб-фреймворка FastAPI — об истории его создания и перспективах аннотаций типов Python

Reading time7 min
Views11K


Python-девелопер и писатель Рики Уайт взял интервью у Себастьяна Рамиреса, разработчика из Explosion AI. Но Себастьян не просто разработчик, это заметная фигура в open source сообществе, создатель популярных фреймворков FastAPI и Typer. В основном речь шла про широкие возможности применения аннотаций типов Python, историю создания фреймворка FastAPI и его дальнейшее развитие. Кроме того, Себастьян рассказал о своих планах по работе над другими open source проектами. Без лишних слов, давайте перейдем к интервью.

Рики: Спасибо, что пришёл, Себастьян. Сначала я бы хотел задать тебе те же вопросы, что и другим своим гостям. Как ты начал программировать? Когда познакомился с Python?

Себастьян: Спасибо, что пригласил [улыбается].

Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим «кодом» был JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой «Hello World». Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я.

Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен «хотя бы» освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать.

Я быстро влюбился в Python и пожалел, что не начал раньше!
Читать дальше →
Total votes 25: ↑22 and ↓3+26
Comments0

Карманная книга по TypeScript. Часть 6. Манипуляции с типами

Reading time18 min
Views25K

image


Мы продолжаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".

Другие части:



Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.
Система типов TS позволяет создавать типы на основе других типов.


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


Дженерики


Создадим функцию identity, которая будет возвращать переданное ей значение:


function identity(arg: number): number {
 return arg
}
Читать дальше →
Total votes 18: ↑16 and ↓2+17
Comments1

Старинное искусство номографии

Reading time5 min
Views11K

Впервые увидел этот странный график в лаборатории университета. Невзрачный листок, ксерокопированный из старой книги, был наклеен на стену рядом с роторным испарителем. Листок, очевидно, использовали часто, но берегли, словно в нём содержалось какое-то древнее могучее заклинание… Впоследствии, схожего рода графики попадались мне и в других лабораториях, словно составляли неотъемлемую часть перегонки с вакуумом. Затем похожие рисунки встречались на страницах разной технической литературы. Их называли номограммы. Научиться ими пользоваться оказалось до смешного просто, но кто и как их в своё время сделал — оставалось загадкой.


Как выглядят номограммы и как они работают


Номограмма, что часто используется при перегонке с вакуумом приведена на рисунке ниже.


Допустим, вы провели реакцию в растворителе, а теперь собираетесь его удалить (выпарить), чтобы собрать продукт реакции. Растворитель улетучивается изнурительно медленно, а чтобы ускорить процесс, вы решаете его нагреть, но вот беда — греть раствор нежелательно, так как продукт реакции от нагревания может испортиться. Создав пониженное давление, вы уменьшите температуру кипения растворителя и сумеете его отделить не причинив вреда растворенному в нем веществу. При нормальном атмосферном давлении 760 мм ртутного столба вода кипит при 100 С, однако, при давлении 40 мм кипит уже при 34 С.

Читать дальше →
Total votes 36: ↑34 and ↓2+42
Comments8

Кража закрытых видео YouTube по одному кадру

Reading time5 min
Views34K

В декабре 2019 года, спустя несколько месяцев после того, как я занялся хакингом по программе Google VRP, я обратил внимание на YouTube. Мне хотелось найти способ получать доступ к закрытым (Private) видео, которыми я не владею.

При загрузке видео на YouTube можно выбрать один из трёх параметров доступа. «Открытый» (Public) позволяет находить и просматривать видео любым пользователям, «Доступ по ссылке» (Unlisted) позволяет просматривать видео только пользователям, знающим ID видео (URL), «Ограниченный доступ» (Private) позволяет просматривать видео только вам или другим аккаунтам, которым дано на это разрешение.

Первым делом я загрузил видео на свой второй тестовый канал аккаунта YouTube и переключил параметры доступа видео на Private, чтобы его можно было использовать для тестирования. (Помните, что тестирование всегда нужно проводить на тех ресурсах/аккаунтах, которыми вы владеете!) Если я смогу найти способ получить доступ к видео с первого тестового аккаунта, то мы выявим наличие бага.

Я открыл YouTube под первым аккаунтом, проверил каждую функцию и нажал на каждую кнопку, которую смог найти. Каждый раз, когда я видел HTTP-запрос с указанием ID видео, я заменял его на тестовое видео с доступом Private, надеясь, что так утечёт какая-нибудь информация о нём, но успеха не добился. Похоже, что основной веб-сайт YouTube (по крайней мере, все его конечные точки, которые я протестировал) всегда проверяет, находится ли видео в состоянии Private, и когда пытается выполнить запрос к целевому закрытому видео, он всегда возвращает ошибки наподобие This video is private!.

Мне нужно найти другой способ.
Total votes 55: ↑46 and ↓9+55
Comments10

Разделочная кораблей: что не погребено в океане, будет разрезано вручную

Reading time11 min
Views30K

— Что за дичь с кораблём, Бальтазар?
— С каким?
— Титаник.
— Ах, да! Титаник. Значит он собирался потонуть, а я его спас.
— Что?
— Он собирался врезаться в айсберг и пойти ко дну со всем честным народом, а я его спас. Ещё что-нибудь?
— Зачем?
— Что зачем?
— Зачем ты спас корабль?
— Потому что я ненавидел фильм.
— Какой фильм?
— Вот именно!
— То есть ты спас пассажирский лайнер, потому что…
—… потому что мерзкая песня Селин Дион доводила меня до ручки!

(«Сверхъестественное», 6-сезон 17-эпизод)


Если бы Титаник не утонул, то он бы просто устарел. В конечном счёте, все устаревшие корабли, если не затоплены, либо становятся плавучими музеями, либо списываются и утилизируются. Срок службы современных кораблей – в среднем 30 лет. Свыше этого срока их эксплуатация становится нерентабельной из-за коррозии корпуса, усталости металла и отсутствия запасных частей. Отслужившие свой век корабли нельзя просто оставить в порту или прибить к берегу неподалеку. Любой порт, следующий этой тактике, рано или поздно будет забит ржавыми «жестянками», угрожающими состоянию окружающей среды и здоровью людей.

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

Утилизация судов — одна из самых опасных, грязных и трудоёмких отраслей в мире, поэтому главные предприятия, специализирующиеся на разборке судов, располагаются в самых бедных странах без строгого природоохранного законодательства, в которой массово используют неквалифицированный и малооплачиваемый ручной труд.
Читать дальше →
Total votes 57: ↑50 and ↓7+61
Comments73

Такая разная колонизация Африки

Reading time8 min
Views18K


Африка. Континент контрастов, с которыми многие из нас сталкиваются ещё в детстве. С одной стороны Николай Дроздов, Иван Затевахин и канал Animal Planet рассказывают нам про всяких интересных зверушек, а Discovery показывает прекрасные виды на всякие вулканы Килиманджаро и водопады Виктория. С другой стороны – «Не ходите в Африку гулять» вперемешку с ужасами от мам и бабушек, мотивирующих поедание невкусной каши упоминанием голодающих африканских детей. И чем старше мы становимся, тем больше на первый план выходят не реки вот такой ширины и горы вот такой вышины, а разного рода Бармалеи. Причём чаще всего представляющие собой лютую смесь из обрывков новостных репортажей, остатков слабой тройки по географии в школе и каких-то диких баек из жёлтых газет и того же цвета сайтов. В итоге, весь континент воспринимается как сплошное месиво из гражданских войн, голодающих детей, военных переворотов, эпидемий и каннибализма. Очень похоже, кстати, на распространённое восприятие средних веков. Просто одно было давно, а другое сейчас, но далеко. Не сказать, чтобы всех перечисленных прелестей был особый дефицит, но всё-таки оно творится не везде и не всегда, а местами и время от времени. Причём где-то чаще, а где-то практически никогда. Вот о том, почему так происходит, речь и пойдёт.
Читать дальше →
Total votes 73: ↑44 and ↓29+33
Comments75

Десятикратное улучшение производительности React-приложения

Reading time6 min
Views13K

image


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


Около года назад в Techgoise я получил возможность поработать с большим React-приложением. Мы получили (унаследовали) готовую кодовую базу, внесли основные правки и начали добавлять в приложение новые интересные возможности.


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


В данной статье я расскажу о том, как нам удалось добиться уменьшения этой цифры с 1,5 Гб до 150 Мб, что, как следствие, привело к улучшению производительности почти в 10 раз, и мы больше никогда не сталкивались с Ошибкой.


Поиск узких мест в производительности


Существует большое количество инструментов и библиотек для обнаружения узких мест в приложении. Мы испытали большое количество таких инструментов. Ниже представлено три из них, которые оказались наиболее полезными.


1. Профилирование компонентов с помощью расширения для Google Chrome

Читать дальше →
Total votes 28: ↑21 and ↓7+19
Comments13

Почему Скотт пришёл к Южному Полюсу вторым, а Амундсен предпоследним

Reading time7 min
Views51K


Если ты ненадёжен — то не стоит руководить полярной экспедицией.
Хотя если ты самонадеян до крайности — как ты сам догадаешься о своей некомпетентности?

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

Суть дела: в январе 1911 в Антарктиде высадились две экспедиции: британская Роберта Скотта и норвежская Руаля Амундсена. Оба хотели достигнуть Южного полюса — последнего места на Земле, где ещё не побывал человек. Группы перезимовали у побережья и стартанули к полюсу почти одновременно. Кто успевал первым, тому и должна была достаться вся слава.
Читать дальше →
Total votes 153: ↑132 and ↓21+159
Comments159

История одной ракушки. И нефти

Reading time11 min
Views19K


В марте 1878 года Дервиш-паша, командующий турецкими войсками, вручил князю Святополк-Мирскому ключи от города Батуми, а уже в июне того же года Берлинский конгресс утвердил статус порта Батуми как порто-франко, то есть порта, где пошлины за ввоз и вывоз товаров не взимались.

В том же году два купца первой гильдии (оба — инженеры-путейцы), Палашковский и Бунге, начали строительство железной дороги Баку – Батуми.

Выгода от этой дороги была очевидной: бакинским нефтедобытчикам, «оседлавшим» самые богатые и самые разработанные прииски, нужен был выход к морю, а возможность беспошлинного вывоза «черного золота» открывала невероятные горизонты.
Читать дальше →
Total votes 44: ↑40 and ↓4+51
Comments17

Wireshark для всех. Лайфхаки на каждый день

Reading time7 min
Views107K

Пакет с сертификатами от Хабра

Wireshark — очень известная программа для захвата и анализа сетевого трафика, незаменимый инструмент хакера, сетевого инженера, программиста, специалиста по безопасности. Да вообще любого любознательного человека, который хочет детально изучить трафик со своего или чужого мобильного телефона, фитнес-браслета, телевизора.
Читать дальше →
Total votes 44: ↑42 and ↓2+52
Comments16

Культура разработки ПО слишком позитивна, это может нам вредить

Reading time4 min
Views18K
image

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

Выгорание


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

В этом году я много общался с людьми, не связанными с технологиями, и заметил одну вещь: мы не особо жалуемся на свою работу. Мы жалуемся на плохое руководство и плохие проекты, но не на сам кодинг. Мы воспринимаем горение своей работой как нечто само собой разумеющееся. Вы удивлены? Почитайте вакансии. Любовь к работе — часто одно из обязательных требований. От нас ждут, что мы будем любить свою работу, более того, что мы сделаем программирование центром своей вселенной.
Читать дальше →
Total votes 46: ↑33 and ↓13+33
Comments162

Rust в ядре Linux

Reading time12 min
Views18K


В более ранней публикации  компания Google объявила, что в Android теперь поддерживается язык программирования Rust, применяемый в разработке этой ОС как таковой. В связи с этим авторы данной публикации также решили оценить, насколько язык Rust востребован в разработке ядра Linux. В этом посте на нескольких простых примерах рассмотрены технические аспекты этой работы.

На протяжении почти полувека C оставался основным языком для разработки ядер, так как C обеспечивает такую степень управляемости и такую предсказуемую производительность, какие и требуются в столь критичном компоненте. Плотность багов, связанных с безопасностью памяти, в ядре Linux обычно весьма низка, поскольку код очень качественный, ревью кода соответствует строгим стандартам, а также в нем тщательно реализуются предохранительные механизмы. Тем не менее, баги, связанные с безопасностью памяти, все равно регулярно возникают. В Android уязвимости ядра обычно считаются серьезным изъяном, так как иногда позволяют обходить модель безопасности в силу того, что ядро работает в привилегированном режиме.
Читать дальше →
Total votes 39: ↑37 and ↓2+44
Comments15

Как культура жителей города влияет на дизайн карт метро: Нью-Йорк

Reading time7 min
Views15K
Что бы вы порекомендовали тому, кто впервые приезжает в Нью-Йорк? Посетить Центральный парк? Посмотреть шоу на Бродвее? Увидеть Статую Свободы?

Я бы первым делом посоветовала скачать офлайн-карту метро. Мне предложили это сделать, когда я впервые оказалась в Нью-Йорке, и это спасало меня множество раз.

Когда я переехала в Нью-Йорк, то почти сразу познакомилась с самой знаковой достопримечательностью города: крупнейшей транспортной системой в мире — Нью-Йоркским метрополитеном. Я узнала, на какие поезда нужно садиться, в какие места можно уехать с каких остановок и, что самое важное, куда меня выведет выход с каждой из станций.

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


Самая новая карта Нью-Йоркского метрополитена
Читать дальше →
Total votes 36: ↑24 and ↓12+20
Comments44

Реверс инжиниринг приборной панели Nissan Murano Z50

Reading time7 min
Views17K
Имеем Nissan Murano 2005 года выпуска. Американец. Ни блютуза ни, уж тем более, цифровой приборной панели, а хочется. Если с блютузом проблема решается прикручиванием устройств подобных этому:

…то оцифровать приборную панель уже будет посложнее. Однако, глаза боятся, а руки делают.

Для экспериментов я приобрел приборку от европейца, но принципиально она ничем от американца не отличается, кроме как расположением кнопок одометра и стоп-сигнала, и настройками тока для стрелочки спидометра (а еще она не такая жирная и не пытается найти у меня нефть). Дело в том, что у европейца и американца отличается максимальная скорость на спидометре, соответственно при 240км/ч на американце, европеец покажет приблизительно 210. Таким образом, графическая накладка не взаимозаменяемая:


Далее, согласно документации на приборную панель (файл Приборка.pdf, все архивы оставлю в конце) подключаем питание к приборке.  Контакты 22, 23, 24 черные провода, на схеме обозначены буквой «B» подключаем к минусу (один или все вместе неважно), и контакты 21«Y/R» — желтый с красной полосой и 20«O» — оранжевый (оба сразу) к + 12 вольтам. Контакт 15«R/W» красный с белой полосой это освещение приборки, то же 12 вольт, но подключать не обязательно. Важное замечание: фактический номер контакта может отличатся от указанного в схеме, ибо инженеры нисан – японцы на всю голову и именуют номер контакта по японскому! То есть на плате три штекера — один основной для подключения к тачке и два для подключения кнопок стоп-сигнала и сброса одометра. Так вот вместо того, чтобы обозначить в каждом штекере контакты от 1 и до максимального, они объединили номера всех трех штекеров в одну группу, таким образом первый по номеру контакт находится на первом штекере, а последний на третьем. Короче ориентируйтесь по цветам и моим картинкам. Вот фото задней части:
Читать дальше →
Total votes 39: ↑30 and ↓9+32
Comments34

Находим и устраняем уязвимости бинарных файлов в Linux — с утилитой checksec и компилятором gcc

Reading time9 min
Views8.3K

Изображение: Internet Archive Book Images. Modified by Opensource.com. CC BY-SA 4.0

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

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

Checksec — это простая утилита, позволяющая определить, какие свойства были включены при компиляции. В этой статье я расскажу:

  • как использовать утилиту checksec для поиска уязвимостей;
  • как использовать компилятор gcc для устранения найденных уязвимостей.

Установка checksec


Для Fedora OS и других систем на базе RPM:

$ sudo dnf install checksec

Для систем на базе Debian используйте apt.

Быстрый старт с checksec


Утилита сhecksec состоит из единственного скриптового файла, который, впрочем, довольно большой. Благодаря такой прозрачности вы можете узнать, какие системные команды для поиска уязвимостей в бинарных файлах выполняются под капотом:
Читать дальше →
Total votes 27: ↑21 and ↓6+22
Comments5

Ошибку Rockstar может совершить каждый (и я тоже)

Reading time4 min
Views28K

Несколько месяцев назад в новостях всплыла потрясающая статья [переводы на Хабре: один и второй] о Grand Theft Auto Online.

Советую прочитать статью целиком, но если вкратце, GTA Online имела внезапно квадратичную производительность при парсинге большого JSON-блоба (из-за многократных вызовов strlen); после устранения этой ошибки время загрузки уменьшилось почти на 70%.

Это вызвало оживлённые дискуссии: в этом виноват C? Или, возможно, "web shit"? Или капитализм и его стимулы?

Однако все были солидарны в одном: они бы ни за что не написали подобной глупости.

(Вы уже чувствуете, что надвигается?)
Читать дальше →
Total votes 56: ↑50 and ↓6+63
Comments54

Information

Rating
Does not participate
Location
Vancouver, British Columbia, Канада
Registered
Activity