Pull to refresh
0
0
Send message

Перехватываем цифровые радиопереговоры, или куда едут экипажи в 5 утра

Reading time9 min
Views102K

Шел апрель 2020 года, ковидная пандемия набирала обороты. Местные власти объявили "карантин", и от скуки сидения дома в один из дней мне пришла в голову мысль разобрать завалы хлама в старой квартире. В одной из коробок мне попался ноунеймовый USB DVB-тюнер на чипе RTL2832U с Алиэкспресса, и тут я призадумался. Вспомнилось, что много-много лет назад я игрался с ним и в эфире можно было услышать много интересного. "А почему бы не поиграться еще раз?" — возникла в голове мысль, которая и положила начало этой истории.

Читать далее
Total votes 113: ↑111 and ↓2+142
Comments77

Первый взгляд на FoundationDB, открытую Apple

Reading time9 min
Views18K
В прошлой статье мы рассматривали ограничения и препятствия, которые возникают, когда нужно горизонтально масштабировать данные и иметь гарантию ACID-свойств транзакций. В этой статье рассказываем о технологии FoundationDB и разбираемся, как она помогает преодолеть эти ограничения при разработке mission-critical приложений.

FoundationDB — это распределенная NoSQL база данных с ACID-транзакциями уровня Serializable, хранящая отсортированные пары ключ-значение (ordered key-value store). Ключами и значениями могут быть произвольные последовательности байт. У неё нет единой точки падения — все машины кластера равноправны. Она сама распределяет данные по серверам кластера и  масштабируется на лету: когда в кластер нужно добавить ресурсов, ты просто добавляешь адрес новой машины на конфигурационных серверах и база сама подхватывает ее.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments15

Джозеф Лесли Армстронг → Цитаты из выступлений

Reading time15 min
Views2K
От переводчика: Джо Армстронг внес величайший вклад в становление Computer Science. Ниже предлагается перевод статьи из вики-цитатника, посвященной Джо.
Сто цитат Джозефа Лесли Армстронга
Total votes 8: ↑8 and ↓0+8
Comments0

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

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



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


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

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

Git снизу вверх

Reading time27 min
Views126K
У этого перевода не совсем обычная история. Системы контроля версий далеки от моих профессиональных интересов. Для рабочих проектов они мне требовались нечасто, причем, разные, так что, каждый раз, когда возникала такая необходимость, я заново вспоминала, как в них делается та или иная операция. А для личных проектов мне хватало возможностей Dropbox, хранящей историю версий файлов.


Изображение из твиттера @girlie_mac

Но вот однажды я на три незабываемых дня попала в роддом — это иногда случается с женщинами. Из развлечений у меня были новорожденная дочь и телефон с большим экраном. Дочь поначалу развлекала плохо (дома она быстро исправилась), а на телефоне помимо книг и фильмов обнаружился текст «Git from the bottom up», который оказался более чем годным… С тех пор прошло почти 3 года, подросшей дочке уже пора самой начинать использовать Git Git стал мейнстримом, если не сказать стандартом в современной разработке, а я с удивлением обнаружила, что перевода на русский этого чуда, полезного не только начинающим, но и продвинутым пользователям Git, до сих пор нет. Исправляю эту ситуацию.
Читать дальше →
Total votes 104: ↑102 and ↓2+100
Comments32

HTTP-заголовки для ответственного разработчика

Reading time15 min
Views100K

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

Разработчики соединяют людей.
Разработчики помогают людям.
Разработчики дают людям возможности.

Разработчики могут создать сеть для всех, но эту способность необходимо использовать ответственно. В конце концов, важно создавать вещи, которые помогают людям и расширяют их возможности. В этой статье я хочу рассказать о том, как HTTP-заголовки могут помочь вам создавать лучшие продукты для лучшей работы всех пользователей в интернете.
Читать дальше →
Total votes 92: ↑90 and ↓2+88
Comments64

Джо Армстронг об Elixir, Erlang, ФП и ООП

Reading time5 min
Views25K

В последние несколько дней на Хабре был опубликован ряд статей, общим лейтмотивом которых (особенно в комментариях) стало противостояние тупоконечников с остроконечниками – адепты ФП против ООП, хотя их и призывали не спорить. Иногда обсуждали Erlang, в связи с чем мне вспомнился короткий пост на тему от Джо Армстронга, одного из создателей этого языка, написанный им в конце 2018 года на форуме по Elixir в ответ на вопрос о парадигме языка. Думаю, его комментарий будет интересен.

Читать дальше →
Total votes 75: ↑75 and ↓0+75
Comments181

«Герои Меча и Магии» в браузере: долго, сложно и невыносимо интересно

Reading time22 min
Views104K
Как реализовать в браузере игру, на которой годы назад залипал без всякого браузера? С какими сложностями столкнёшься в процессе, и как их можно решить? И, наконец, зачем вообще это делать?

В декабре на конференции HolyJS Александр Коротаев (Tinkoff.ru) рассказал, как он сделал браузерную версию «Героев». Ранее уже появилась видеозапись доклада, а теперь для Хабра мы сделали ещё и текстовую версию. Кому удобнее видео — запускайте ролик, а кому текст — читайте его под катом:

Читать дальше →
Total votes 214: ↑210 and ↓4+206
Comments63

Для чего программисту Continuous Integration и с чего начинать

Reading time8 min
Views52K
Представьте что в Роскосмосе решили собрать новую ракету не имея при этом чертежей и четкого понимания как ракета должна быть устроена. Отдельный завод занимается корпусом ракеты, отдельный выпускает двигатели, еще один — сопла. Главный менеджер Роскосмоса сказал что он доверяет профессионалам, и мастерски сделегировал всю работу заводам.



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

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

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

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

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

В 1991 году Гради Буч, видимо, устал от такого безобразия, и предложил делать сборку всего проекта каждый день, чтобы выяснять несовместимости не в день релиза, а пораньше — и назвал этот подход Continuous Integration.
Читать дальше →
Total votes 58: ↑52 and ↓6+46
Comments56

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

Reading time13 min
Views227K


Аннотация: Рассказ о том как я подошел к процессу оздоровления своего организма с «точки зрения химика» и что из этого получилось. Вкратце :– сильно похудел пока на 28кг(процесс сильно замедлился и вполне управляем), многие элементы физического состояния сильно улучшились. В общем – много плюсов, особенно при сидячей работе, как это и бывает при работе с компьютерами. Неожиданно – что удалось обойтись без угнетающих и неприемлемых для меня диет. Минусы – для этого процесса мне пришлось выделять очень много времени. Особенно в начале, когда организм еще не настроился должным образом. Бывает трудно заснуть, Однако, у меня получилось то что получилось, и это оказалось много лучше того, что я ожидал.

Цель написания:Среди знакомых эмоциональное воздействие моего примера расходится кругами, естественно, все хотят знать Секрет (секрет Полишинеля на самом деле). К сожалению, если объяснять в двух словах суть моих действий – ходьба и питание, хоть и досыта, но не часто, это приводит только к непониманию и отрицанию.-«Для меня это невозможно». Для меня это тоже было невозможно, вот потому-то я и решил написать эту статью, в которой постараюсь изложить мои рассуждения, предпринятые действия и способы облегчить процессы расщепления накопленных организмом жиров, при этом не страдая от голода и с минимальным риском для здоровья.

Если Вам это интересно – пожалуйте под кат, обещаю много букв и мало картинок.
Читать дальше →
Total votes 83: ↑80 and ↓3+77
Comments563

Как я использую git

Reading time6 min
Views90K

Intro


Основам git мне пришлось научиться на своем первом месте работы (около трех лет назад).
С тех пор я считал, что для полноценной работы нужно запомнить всего-лишь несколько команд:


  • git add <path>
  • git commit
  • git checkout <path/branch>
  • git checkout -b <new branch>

И дополнительно:


  • git push/pull
  • git merge <branch>
  • git rebase master (а что, можно еще и на другие ветки ребейзить? О_о)

В принципе, я и сейчас во многом так считаю, но со временем волей-неволей начинаешь узнавать интересные трюки.

Читать дальше →
Total votes 117: ↑106 and ↓11+95
Comments195

Управление интровертами интровертом или опыт руководства техническими командами

Reading time18 min
Views16K
Для начала об авторе – я более 20 лет проработал в ИТ в трех компаниях: EMC, IBM, Sun (в алфавитном порядке). Начинал как системный инженер сразу после университета, потом был старшим инженером, техническим консультантом, руководителем технических консультантов и, наконец, техническим директором, руководившим командой пресейлов и архитекторов всего более 70-ти человек. Кроме того, год я был лидером продавцов через партнеров (Channel Sales Leader), распределенных по Центральной и Восточной Европе. Ниже я попытаюсь поделиться своим опытом именно, как руководителя и, дабы не возникало не правильных или не нужных ассоциаций, я буду приводить примеры из практики во время работы на компанию ABC (тоже три буквы). Возможно, изложение несколько однобоко, поскольку все мои работодатели – крупные международные компании, и я работал в их региональных офисах. Ну, тогда с этой спецификой я не могу ничего поделать и то, что читатель сочтет не приемлемым и не правильным пусть и останется таковым персонально для него.

Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments21

Matthias Noback Об Идеальной Архитектуре — Слои, Порты и Адаптеры(Часть 2 — Слои)

Reading time7 min
Views15K

В 2017 году Matthias Noback (автор A year with Symfony) опубликовал цикл из трех статей, в котором описал свои взгляды на идеальную архитектру корпоративных приложений, сформировавшуюся за долгие годы практики.Первая часть является вводной и не представляет особого интереса(можно ознакомитсья в оригинале). Переводом второй является данная статья. Перевод третьей будет доступен в скором времени.


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

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

Шпаргалка для технического собеседования

Reading time8 min
Views208K


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

Читать дальше →
Total votes 81: ↑68 and ↓13+55
Comments85

Эволюция системных вызовов архитектуры x86

Reading time13 min
Views42K

Про системные вызовы уже много было сказано, например здесь или здесь. Наверняка вам уже известно, что системный вызов — это способ вызова функции ядра ОС. Мне же захотелось копнуть глубже и узнать, что особенного в этом системном вызове, какие существуют реализации и какова их производительность на примере архитектуры x86-64. Если вам также интересны ответы на данные вопросы, добро пожаловать под кат.

Читать дальше →
Total votes 77: ↑77 and ↓0+77
Comments30

Каких слов стоит избегать, чтобы сделать вашу английскую речь более современной и естественной

Reading time3 min
Views43K

Любой современный язык — это живая система, которая постоянно обновляется и меняется. Не удивительно, что какие-то слова просто устаревают или просто реже звучат в повседневном общении, а вместо них появляются новые слова. Ловите подборку таких слов и их более современные варианты от носителя языка.
Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments171

REST — это новый SOAP

Reading time13 min
Views69K

Несколько лет назад я разрабатывал для одного большого телекома новую информационную систему. Нам приходилось взаимодействовать со всё нарастающим количеством веб-сервисов, открываемых более старыми системами или бизнес-партнёрами. Как вы понимаете, мы получили добрую порцию SOAP-ада. Заумные WSDL, несовместимые библиотеки, странные баги… Где только возможно мы старались продвинуть — и использовать — простые RPC-протоколы: XMLRPC или JSONRPC.

Читать дальше →
Total votes 106: ↑103 and ↓3+100
Comments153

Как я взломал компании, связанные с криптовалютой, и заработал на этом $60 000

Reading time9 min
Views79K
image

Биткоин и криптовалюты в целом сейчас у всех на слуху. Моё знакомство с криптовалютами произошло примерно 5 месяцев назад, именно тогда я начал инвестировать в bitcoin и ethereum, курс на тот момент был по $1900 за btc и $89 за эфир. Для того, чтобы вы могли понять, какой профит я получил, скажу, что на момент написания статьи биткоин стоит $18 100, а эфир $830 и продолжает выходить на орбиту вместе с остальными криптовалютами. Подумал, что будет отлично посмотреть насколько безопасны сервисы, в которых я держу свои криптовалютные сбережения, торгую ими или отдаю в доверительное управление.
Total votes 95: ↑87 and ↓8+79
Comments42

Переписать базу сообщений ВКонтакте с нуля и выжить

Reading time9 min
Views62K
Наши пользователи пишут друг другу сообщения, не зная усталости.

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

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

Для нас этот момент наступил полтора года назад. Как мы к этому пришли и что получилось в итоге — рассказываем по порядку.
Читать дальше →
Total votes 97: ↑94 and ↓3+91
Comments91

Курс молодого бойца PostgreSQL

Reading time13 min
Views528K


Хочу поделиться полезными приемами работы с PostgreSQL (другие СУБД имеют схожий функционал, но могут иметь иной синтаксис).

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

Данный материал будет полезен тем, кто полностью освоил базовые навыки SQL и желает учиться дальше. Советую выполнять и экспериментировать с примерами в pgAdmin'e, я сделал все SQL-запросы выполнимыми без разворачивания каких-либо дампов.

Поехали!
Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments59

Information

Rating
Does not participate
Registered
Activity