Pull to refresh
0
0
Сергей @cybd

User

Send message

Опубликованы звукозаписи 19 000 часов переговоров во время лунной экспедиции «Аполлон-11»

Reading time3 min
Views18K

Одна из компьютерных распечаток списка треков с 30-канальной плёночной бобины Apollo. Указана информация о каждом из 30 треков

Многие слышали звукозапись легендарных слов Нила Армстронга, когда он вышел из лунного модуля Apollo 11 LM Eagle и ступил на дно Моря спокойствия в ходе лунной экспедиции «Аполлон-11»: «Один маленький шаг для человека и огромный скачок для человечества». Он произнёс их 20 июля 1969 года.

Но это историческое событие никогда не стало бы возможным, если бы не все остальные участники миссии. Кроме трёх астронавтов, поднявшихся в космос на ракете «Сатурн-5», это ещё десятки инженеров, экспертов, аналитиков и операторов на станциях мониторинга по всему миру, и не только их. Все они поддерживали непрерывную связь на протяжении всей экспедиции: от начала до конца. И теперь у нас впервые появилась возможность услышать эти переговоры.
Читать дальше →
Total votes 47: ↑44 and ↓3+41
Comments48

Mind map вместо тест-кейса, или Как визуализация позволяет тестировать приложение быстрее

Reading time5 min
Views82K

Привет! Меня зовут Катя, и я работаю тестировщиком мобильных приложений более пяти лет. Последние три года я тружусь в iOS-команде Badoo, и еженедельно мы релизим от трёх до семи новых фич, от трёх до пяти технических тасков и от пяти до 13 багфиксов. Как вы понимаете, приложение меняется с такой скоростью, что поддерживать классическую тестовую документацию (test cases) неэффективно: почти всегда она будет устаревшей.

Опытным путём мы выяснили, что чек-листы в качестве тестовой документации работают лучше, так как их проще создавать и использовать. Тем не менее иногда они могут быть запутанными и слишком подробными, особенно когда есть буквально пара часов на exploratory testing фичи, которая должна попасть в следующий релиз.

В этом случае визуализация позволяет сэкономить кучу времени, поэтому мы решили попробовать использовать mind maps (или «ментальные карты»), которые так же удобны в использовании, как чек-листы, но более наглядны за счёт визуального формата.

Сегодня мы подробненько разберём созданную мной mind map для тестирования iOS-приложения (далее именуемую «моя прелесть»), а также пройдёмся по ресурсам, которые можно использовать при построении mind map для мобильного приложения, чтобы покрыть максимальное количество важных сценариев.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments32

21 совет по эффективному использованию Composer

Reading time9 min
Views25K

Хотя большинство PHP-разработчиков умеют пользоваться Composer, не все делают это эффективно или лучшим возможным образом. Поэтому я решил собрать советы, которые важны для моей повседневной работы. Большинство из них опираются на принцип «От греха подальше»: если что-то можно сделать несколькими способами, то я выбираю наименее рискованный.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments7

Тесты на знание Python, PHP, Golang и DevOps: разбор викторины AvitoQuiz на Highload

Reading time3 min
Views20K

Конференция Highload++ 2017 отгремела, и это было круто — как всегда. Мы пересматриваем доклады, вовсю пользуемся опытом, которым с нами поделились коллеги, и с удовольствием вспоминаем разные активности, которые проводились вне зоны докладов.


На нашем стенде, например, можно было пройти тест на знание одного из языков программирования (Python, Go, PHP) или тест для DevOps и получить красочную тематическую футболку. Сегодня хотим предложить вам ещё раз окунуться в атмосферу конференции и разобрать ответы на самые Highload-задачи из нашего теста. А может, вы сможете решить их, не заглядывая под спойлер?


Enjoy!


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments13

Об особенностях сканирования исполняемых файлов антивирусами и доверии результатам VirusTotal

Reading time7 min
Views49K


Всем привет. Ниже будет много глупого текста, ностальгических воспоминаний и школотного кода. Кроме того будет рассмотрена эффективность сервиса VirusTotal, а также антивирусных движков в отношении исполняемых файлов.
Читать дальше →
Total votes 60: ↑57 and ↓3+54
Comments127

Прошло 10 лет, а никто не придумал, как использовать блокчейн

Reading time14 min
Views144K
Все говорят, что блокчейн — технология, лежащая в основе криптовалют — изменит ВСЁ. Но спустя годы усилий и многомиллиардные инвестиции никто так и не придумал, как можно использовать блокчейн, если не считать криптовалютных спекуляций и противозаконных финансовых транзакций.

Во всех описываемых случаях использования — от платежей до юридических документов, от депонирования до систем голосования — авторы прибегали к всевозможным ухищрениям, чтобы внедрить распределённый, зашифрованный, анонимный реестр, в котором не было нужды. А что если вообще не существует потребности в использовании распределённого реестра? Что если отсутствие масштабных проектов на базе распределённого реестра спустя десятилетие разработок объясняется тем, что это никому не нужно?
Читать дальше →
Total votes 233: ↑190 and ↓43+147
Comments480

Возможности JavaScript, о существовании которых я не знал

Reading time5 min
Views48K
image На днях я читал материалы на MDN и наткнулся на некоторые довольно интересные возможности и API JavaScript, о существовании которых я не знал. Хочу сегодня о них рассказать.

Не берусь судить о том, пригодятся ли они кому-нибудь, но, полагаю, что раз уж всё это есть в языке, то об этом полезно, как минимум, знать.
Читать дальше →
Total votes 82: ↑74 and ↓8+66
Comments149

Ричард Хэмминг: «Учитель должен готовить ученика к будущему ученика, а не к прошлому учителя»

Reading time7 min
Views24K
«В этих лекциях я пытаюсь передать студентам то, чего не передашь словами — суть стиля в науке и инженерном деле.»

imageПривет, Хабр.
Помните офигенную статью «Вы и ваша работа» (+219, 2041 в закладки, 328k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Давайте ее переведем, ведь мужик дело говорит.

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

Мы уже перевели 3 главы (правда, в порядке субъективных интересов):


Сегодня — Предисловие и Введение.
(За перевод спасибо Savva Sumin, который откликнулся на мой призыв в «предыдущей главе».)

Кто хочет помочь с переводом — пишите в личку или на почту magisterludi2016@yandex.ru

Предисловие


Спустя много лет давления и поддержки со стороны друзей, я решил изложить в форме записей содержание курса по инженерному делу, который я преподавал студентам Аспирантуры Университета Морской Пехоты в Монтеррее, Калифорния. В первую очередь, я сосредоточился на тех деталях, которые, по моему мнению, подлежали дальнейшей обработке, вместо того, чтобы оставить материал в виде несколько разобщённых лекций. В лектории содержание чаще следовало за интересом студентов, а многие из более поздних лекций стали результатом предложенных ими тем. Также, содержание лекций менялось от года к году, вместе с развитием соответствующих дисциплин. А нынешняя зависимость инженерного дела от связанных с ним научных областей склоняет меня к отождествлению этих терминов.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments4

Node.js и переход с PHP на JavaScript

Reading time9 min
Views61K
Больше десяти лет я был PHP-разработчиком, но недавно перешёл на JavaScript, используя его серверные и клиентские возможности. До этого я уже был знаком с JS. Сначала работал с jQuery, потом освоил Angular, и, наконец, начал пользоваться React.

Когда я начинал писать на PHP, я встраивал его в HTML-файлы. Получался не код, а полный бардак. Поэтому, для того, чтобы привести мои разработки в приличный вид, я начал пользоваться фреймворками, в частности, ZF1 и ZF2. Через некоторое время подход, при использовании которого начинают разработку с API, привёл к тому, что у меня оказался сервер, состоящий из сгенерированных REST API и из нескольких сотен строк моего собственного кода.



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

Сегодня я расскажу, в основном, о своём путешествии с серверной стороны PHP на серверную сторону JS в виде Node.js. Здесь я не буду рассказывать о Webpack, React и о других клиентских технологиях JS.
Читать дальше →
Total votes 65: ↑52 and ↓13+39
Comments115

Что за чёрт, Python

Reading time24 min
Views102K


Недавно мы писали о забавных, хитрых и странных примерах на JavaScript. Теперь пришла очередь Python. У Python, высокоуровневого и интерпретируемого языка, много удобных свойств. Но иногда результат работы некоторых кусков кода на первый взгляд выглядит неочевидным.


Ниже — забавный проект, в котором собраны примеры неожиданного поведения в Python с обсуждением того, что происходит под капотом. Часть примеров не относятся к категории настоящих WTF?!, но зато они демонстрируют интересные особенности языка, которых вы можете захотеть избегать. Я думаю, это хороший способ изучить внутреннюю работу Python, и надеюсь, вам будет интересно.


Если вы уже опытный программист на Python, то многие примеры могут быть вам знакомы и даже вызовут ностальгию по тем случаям, когда вы ломали над ними голову :)

Читать дальше →
Total votes 84: ↑69 and ↓15+54
Comments47

Шесть мифов о блокчейне и Биткойне, или Почему это не такая уж эффективная технология

Reading time9 min
Views206K
Автор статьи — Алексей Маланов, эксперт отдела развития антивирусных технологий «Лаборатории Касперского»

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

Уточнение: в этом посте мы поговорим о том варианте реализации технологии блокчейн, который используется в криптовалюте Биткойн. Существуют другие применения и реализации блокчейна, в некоторых из них устранены какие-либо недостатки «блокчейна классического», но обычно они построены на одинаковых принципах.


Читать дальше →
Total votes 217: ↑190 and ↓27+163
Comments435

Применение принципа poka-yoke в программировании на примере PHP

Reading time16 min
Views28K


Всем привет! Я Алексей Грезов, разработчик Server Team Badoo. Мы в Badoo всегда стараемся сделать так, чтобы наш код было легко поддерживать, развивать и переиспользовать, ведь от этих параметров зависит, насколько быстро и качественно мы сможем реализовать какую-либо фичу. Одним из способов достижения этой цели является написание такого кода, который просто не позволит совершить ошибку. Максимально строгий интерфейс не даст ошибиться с порядком его вызова. Минимальное количество внутренних состояний гарантирует ожидаемость результатов. На днях я увидел статью, в которой как раз описывается, как применение этих методов упрощает жизнь разработчикам. Итак, предлагаю вашему вниманию перевод статьи про принцип "poka-yoke".

Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments15

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

Reading time5 min
Views27K
Фото очереди в мавзолей Мао Цзэдуна —  BrokenSphere / Wikimedia Commons

В проекте, над которым я сейчас работаю, применяется распределённая система обработки данных: сначала несколько десятков машин одновременно производят некоторые сообщения, затем эти сообщения отправляются в очередь, из очереди три потока извлекают сообщения и после финальной обработки выкладывают данные в базу Redis. При этом имеется требование: от «зарождения» события в машине, производящей сообщение, до выкладывания обработанных данных в базу должно проходить не более четырёх секунд в 90% случаев.

В какой-то момент стало очевидно, что мы это требование не выполняем, несмотря на затрачиваемые усилия. Несколько произведённых измерений и маленький экскурс в теорию очередей привели меня к выводам, которые я бы хотел донести до себя самого несколько месяцев назад, когда проект только начинался. Отправить письмо в прошлое я не могу, но могу написать заметку, которая, возможно, избавит от неприятностей тех, кто только задумывается над тем, чтобы применять очереди в собственной системе.
Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments36

Про Гауди — разработчика из девятнадцатого века, добившегося всего, чего может добиться разработчик

Reading time8 min
Views100K
Вот что строил испанский архитектор Антонио Гауди:



Его здания описывают как «бионические дома», некоторые говорят о «летящей пластичной материи». За морем восторгов художников и дизайнеров, как мне показалось, упущена некоторая невероятная рационализация и прагматичность. Гауди был в первую очередь отличным разработчиком, математиком и геометром. Но чтобы объяснить это, сначала я покажу другую картинку:


Это два крепления. Первое производится серийно — оно просто в проектировании, просто в изготовлении, дёшево и невероятно уродливо. Второе красивое, и требует на 25% меньше материала для того, чтобы выдержать тот же вес (то есть — куда прочнее). Только его трудно рассчитать, оно будет дороже в серии — и придётся подумать.

Примерно то же самое делал Гауди. Ему пришлось обойтись без математического аппарата и современных материалов. И ещё действовать в рамках строго ограниченного бюджета. Он, фактически, заложил новые принципы всего от фасада до последней дверной ручки, создал шедевры оптимизации — в общем смёл все стереотипы как сухие листья, создал с нуля теорию и воплотил её. В девятнадцатом веке всё то, что он делал, было просто диким. Некоторые даже считали его сумасшедшим.
Читать дальше →
Total votes 228: ↑225 and ↓3+222
Comments136

Посещение конференции — чеклист

Reading time14 min
Views14K
Это статья появилась за распитием пива с друзьями в Академгородке — стало понятно, что лучше её перенести в текстовый вид, дабы не повторять сто раз.

Существуют легенды на тему того, что единственный смысл конференции — это найти себе работу покруче за деньги текущего работодателя. Несмотря на внешнюю неэтичность, в этом хотя бы есть смысл. В реальности бывает куда хуже: люди приходят на конфу, и потом не знают, чем заняться, кроме как хавать булочки в переходе (особенно если они бесплатные). Давайте я расскажу, что делать, чтобы не тратить свои и чужие ресурсы зазря.
Читать дальше →
Total votes 55: ↑51 and ↓4+47
Comments8

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time8 min
Views217K

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →
Total votes 66: ↑54 and ↓12+42
Comments25

Обзор исходного кода Quake 2

Reading time51 min
Views60K
image

Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.

Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.

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

Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.
Total votes 111: ↑110 and ↓1+109
Comments63

Hacksplaining — интерактивный курс по веб-уязвимостям

Reading time4 min
Views38K
image
 
Hacksplaining представляет каталогизированный и наглядный онлайн-туториал по основным веб-уязвимостям. По каждой уязвимости представлено подробное описание, насколько часто встречается, как сложно ее эксплуатировать и уровень ее критичности. К каждой уязвимости приложено подробное описание, вектор эксплуатации, уязвимый код и рекомендации по устранению и защите. В качестве примера в статье приведен разбор одного из заданий по взлому виртуального онлайн-банкинга с помощью эксплуатации sql-инъекции.
Читать дальше →
Total votes 36: ↑33 and ↓3+30
Comments6

Bash-скрипты: начало

Reading time11 min
Views1.7M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Total votes 69: ↑61 and ↓8+53
Comments123

Серия видеоуроков по Git для новичков

Reading time1 min
Views114K
Скорее всего, если вас привлекло название статьи, то вы начинаете свой путь знакомства с системой контроля версий Git. В данной статье я приведу 10+ видео о пошаговом вхождении в контроль версии используя Git. Данного курса будет вполне чем достаточно для работы с такими популярными сервисами как GitHub и Bitbucket.

Однажды мой знакомый, который только начинал свой путь в ИТ кинул мне данный мемчик что слева, с вопросом "А чем плохо то?", поэтому чтобы понимать данную шутку и уметь работать с самым популярным на сегодня VCS (Version Control System) рекомендую к ознакомлению серии видеоуроков, которую я привел ниже.
Читать дальше →
Total votes 58: ↑49 and ↓9+40
Comments43

Information

Rating
Does not participate
Location
Киевская обл., Украина
Date of birth
Registered
Activity