Pull to refresh
16
0
Виталий @Brick85

User

Send message

Операционные системы с нуля; Уровень 0

Reading time 11 min
Views 132K

Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.


Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.


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

Читать дальше →
Total votes 80: ↑78 and ↓2 +76
Comments 55

Что можно почитать из свежей художественной литературы

Reading time 3 min
Views 59K
Близится новогодние каникулы и нужно как-то провести это время. Поэтому создал список книг которые можно почитать. Отбирал по следующим критериям. Увлекательное, это книги для чтения с удовольствием. Непустые, есть какие-то новые идеи или мысли, может просто хорошее описание чего-нибудь. Свежее, списков хорошей классики хватает. И главное, запомнившиеся.

Короткий список


Самое лучшее. Если вы еще не читали, то я вам завидую.

Элиезер Юдковский «Harry Potter and the Methods of Rationality»


Методы рациональности мы все знаем и любим.hpmor.ruПолный перевод на русский, hpmor.com оригинал на английском, yudkowsky.net здесь еще несколько других произведений которые стоит прочитать и статьи.

Роберт Ибатуллин «Роза и Червь»


Алмаз научной фантастики. Реалистичный космос, с учетом новых знаний и теоретически возможных технологий без фантастических добавок. За прошлый год книга была дописана и издано на бумаге и в электронной форме.

Джон МакКрей «Worm»


Эпическая история о девушке получившую нетрадиционную суперсилу в темном и мрачном супергеройском мире. Настоящий эпик, свежий супергеройский мир, огромный объем хватит на все каникулы. Оригинал, Перевод на русский, незакончен.
Читать дальше →
Total votes 34: ↑27 and ↓7 +20
Comments 130

Параллельные алгоритмы для обработки BigData: подводные камни и непростые решения

Reading time 9 min
Views 20K
Эта публикация написана по материалам выступления AlexSerbul на осенней конференции BigData Conference.

Большие данные — тема модная и востребованная. Но многих по-прежнему отпугивает избыток теоретических рассуждений и некоторый недостаток практических рекомендаций. В этом посте я хочу отчасти заполнить этот пробел и рассказать об использовании параллельных алгоритмов для обработки больших данных на примере кластеризации товарного каталога из 10 млн позиций.
Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Comments 35

Генерируем псевдослучайные ID а-ля Youtube

Reading time 4 min
Views 24K
Привет, %username%! Бывает необходимо генерировать ID не подряд, причем чтобы они гарантированно не повторялись. На youtube это используется для того, чтобы вы не могли брутфорсом получить все новые и старые видосики, так же это не редкость на разных файлообменниках и вообще везде где нужно предотвратить или хотя бы затруднить возможность прямого перебора значений.


К примеру, в системе moodle, которая использовалась у нас в универе для тестирования студентов, ID ответов были инкрементными и сквозными на всю базу. Логично предположить, что правильным ответом был тот, что с наименьшим ID в пределах вопроса. В общем, проблем с тестами у нас не было. Потом они перешли на GUID, но я к тому моменту уже выпустился, хехе.

Давайте рассмотрим несколько способов генерации таких ограниченных по длине последовательностей от самых простых до криптографически стойких.
Читать дальше →
Total votes 69: ↑63 and ↓6 +57
Comments 41

Спутник — это очень просто

Reading time 19 min
Views 63K
Мы быстро привыкаем к прогрессу. Вещи, которые нам несколько лет назад казались фантастикой, сегодня не замечаются и воспринимаются как всегда существовавшие. Достаточно покопаться в старых вещах, как вдруг найдется монохромный мобильный телефон, дискета, магнитофонная кассета или даже катушка. Не так давно это было. Не так давно и интернет был «по талонам» под скрип модема. А кто-то помнит 5,25" жесткие диски или даже магнитофонные кассеты с компьютерными играми. И обязательно найдется тот, кто скажет, что в его время были 8" дискеты и бобины для ЕС ЭВМ. И в тот момент ничего не было современнее, чем это.

В эти недели можно наблюдать традиционные мероприятия, посвященные запуску первого Спутника — началу Космической эры. Силой случая спутник, который должен быть первым, стал третьим. А первым полетел совсем другой аппарат.
Этот текст о том, как просто сейчас услышать спутники на околоземных орбитах и как это было в начале космической эры. Перефразируя известной когда-то книги Е. Айсберга: «Спутник — это очень просто!»

image

Читать дальше →
Total votes 66: ↑66 and ↓0 +66
Comments 10

50+ лучших дополнений к Bootstrap

Reading time 5 min
Views 202K


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

Для статьи я подобрал наиболее полезные дополнения «на все случаи жизни».
Читать дальше →
Total votes 123: ↑111 and ↓12 +99
Comments 25

Сериал: Big Data — как мечта. 1-я серия

Reading time 5 min
Views 17K
Big Data глазами разных индустрий — это очередная мечта о Граале, который решит, спасет и защитит! В жизни всё точностью до наоборот: Big Data — это совершенно новые задачи, свертывания застойных проектов и увольнения неперестроившихся специалистов. Предлагаем цикл статей по практике реального применения неструктурированных Big Data в разных индустриях, становлении новых специальностей, которым еще только придумываются названия — аналитик и социолог Big Data, HiLoad-лингвист, журналист-трендист (от слова трЕнд, а не трЫндеть), — и, надеемся, плодотворных обсуждений куда должна привести новая большая дорога.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 12

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Reading time 29 min
Views 107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

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



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Total votes 96: ↑79 and ↓17 +62
Comments 37

freelance — you're doing it wrong!

Reading time 39 min
Views 82K
Доброго времени суток уважаемые хаброжители, меня зовут Юра, и сегодня я поведаю вам о проблемах высокотехнологичного отпрыска удалённой работы — фриланса, а именно о разработке мобильных, десктопных и вэб-приложений, вёрстке и дизайне. Работаю я в этой сфере достаточно недавно, буквально с 2008го, и опыта хорошего и плохого у меня накопилось достаточно много. Цель данной публикации — показать разницу между простыми сотрудниками и фрилансерами, а также — показать основные организационные проблемы, которые возникают при разработке и проектировании программного обеспечения. Я надеюсь, что этот пост поможет прояснить некоторые производственные моменты, которые могли бы быть не совсем очевидны для разработчиков и их руководства.

Суждения в данной статье субъективны — сплошная концентрированная «отсебятинка».
Они основаны на моём личном опыте и опыте людей с которыми я общаюсь.
PAIN INSIDE
Total votes 86: ↑62 and ↓24 +38
Comments 80

Бесплатная музыка на YouTube

Reading time 2 min
Views 114K
Нельзя отрицать силу музыки. Правильная песня может создать волшебное настроение. В то же время неправильная — вмиг его испортит. Независимо от того, в какое состояние вы хотите погрузиться, саундтрек имеет решающее значение.

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

Именно поэтому, сегодня мы запускаем музыкальную библиотеку YouTube Audio Library. Любой автор YouTube теперь имеет доступ к более чем 150 бесплатным инструментальным композициям, которые можно использовать бесплатно, в любое время, для любых творческих целей (не только для видео на YouTube). Вы найдете ссылку на библиотеку в вашем редакторе видео и сможете фильтровать треки по тональности, жанру, инструментам и продолжительности. Треки можно скачивать как MP3-файлы (320 Кб).

Если вы создаёте мелодраму, послушайте The Engagement

image
Гитарист Оскар Родригес (Oscar Rodriguez) записывает трек для аудио библиотеки YouTube
Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 23

RThrust — система автоматического тестирования БК моторов

Reading time 4 min
Views 35K
Я довольно давно увлекаюсь мультикоптерами, и все это время я ищу способы заставить коптеры летать дольше.
Типичное время полета для недорогого коптера 7-15 минут. Удручающе мало. Мой текущий квадрокоптер летает 19 минут. И на выбор регуляторов и ВМГ для него я потратил немало времени, чаще всего делая предположения в условиях недостаточных данных.
Ключом к продолжительности полета является энергоэффективная винтомоторная группа. Что это значит? Комбинация мотора и воздушного винта должны максимально эффективно использовать энергию для создания тяги. То есть поднимать как можно больше веса, потребляя как можно меньше энергии. Измеряется эффективность винтомоторной группы в граммах на ватт. На форумах частенько встречаются различные приспособления, состоящие из весов и крепления для мотора плюс какой-нибудь ваттметр. Иногда обходятся чисто весами, чтобы выяснить какую вообще тягу создает ВМГ.
Однако, погрешность измерений обычно весьма высокая, начиная с того, что мы не можем точно определить одновременно и тягу, которая колеблется (мотор постоянно меняет обороты) и мощность, которая тоже плавает достаточно сильно. В итоге ошибка сравнима с разницей между моторами.
Меня такая ситуация не устраивает, учитывая, что моторы и пропеллеры различаются по стоимости до десятка раз, нужно понимать, стоит ли платить больше.
В итоге я построил испытательный стенд, на который крепится ВМГ и замеряются ее параметры:
RThrustLogo-Тяга с точностью до 1г
-Напряжение аккумулятора с точностью до 0.01В
-Ток с точностью до 0.1А-0.2А примерно (зависит от тока)

Не знал в какой блог разместить информацию, поэтому пока поместил сюда.
Еще картинки, куча подробностей и видео работы стенда
Total votes 62: ↑58 and ↓4 +54
Comments 66

История игрушки. Поле Чудес

Reading time 11 min
Views 297K
Случилось это в городе, закрытом от шпионов, цыган и бед социалистической экономики. В Советском Союзе было ровно 10 таких городов, повязанных атомным секретом.

Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

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

Pole Chudes для iPhone

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

Читать дальше →
Total votes 933: ↑923 and ↓10 +913
Comments 311

Прием КВ на RTL-SDR, бесплатно без конвертера

Reading time 2 min
Views 133K


После прочтения статьи о дешевом SDR из ТВ-тюнера я сразу же кинулся заказывать донгл на R820T. Но всё омрачал факт невозможности приема на коротких волнах, ибо в моем городе на УКВ нет ничего интересного: пара-тройка такси, скорая и изредка появляющиеся радиолюбители. После недолгих поисков я наткнулся на несколько методов «раскрытия» тюнера на 0-15МГц без использования относительно недешевых upconverter-ов.
Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Comments 47

Как IPv6 помогает роутеры ломать

Reading time 5 min
Views 121K
image

Предисловие


Проснулся я сегодня с мыслью, что огромное количество инструкций по настройке NAT советуют использовать строку вида:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Многие понимают проблемы этой конструкции, и советуют добавлять:
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

Но, зачастую, забывают задать таблице FORWARD действие DROP по умолчанию, или добавить правило REJECT в конец таблицы.
На первый взгляд, вроде бы, все кажется нормальным. Однако, это далеко не так. Дело в том, что если не запретить маршрутизировать трафик из WAN-порта в WAN-порт, кто-нибудь из вашей WAN-сети (предположим, что провайдер садит весь подъезд в одну /24) может маршрутизировать трафик через вас, просто прописав ваш IP в качестве шлюза. Все современные SOHO роутеры это учитывают, а вот неопытный администратор, который делает роутер под обычным linux, может не знать или забыть об этом. В подсети моего провайдера таких роутеров не оказалось, и мой план по захвату мира провалился. Однако, статья совсем не об этом.

Магические двоеточия


Как вы, может быть, знаете, многие современные программы и сервисы биндятся на IP :: (два двоеточия), а не на 0.0.0.0, как было раньше. IPv6 адрес :: значит то же самое, что и IPv4 0.0.0.0, т.е. «слушаем все интерфейсы». Многие считают, что если программа слушает ::, то этот сокет может принимать только IPv6-соединения, однако это далеко не так.
В IPv6 есть так называемое отображение IPv4-адресов в IPv6 диапазон. Если программа слушает сокет ::, а к ней обращаются из IPv4-адреса 1.2.3.4, то программа получит соединение с адреса ::ffff:1.2.3.4. Этого можно избежать, сделав:
sysctl -w net.ipv6.bindv6only=1

Но это нужно далеко не всегда, т.к. обычно удобно, что программа слушает один сокет, а получать соединения может по двум протоколам сразу. Практически во всех дистрибутивах, IPv6-сокеты ведут себя именно так, т.е. bindv6only=0.
Читать дальше →
Total votes 115: ↑113 and ↓2 +111
Comments 36

Deploy с помощью Salt

Reading time 8 min
Views 33K

До сих пор во многих компаниях deploy создает большие проблемы и может занимать дни, недели и в особо запущенных случаях месяцы. Но ситуация не безнадежна. Существует много инструментов и практик, способных помочь в этом нелегком деле. Вот только эти инструменты чаще всего за один-два дня не освоишь, а сроки горят.

Чего обычно хочется:
  • Возможность поднять проект локально на машине разработчика. Весь или хотя бы частями. Причем очень хочется, чтобы Dev конфигурация отличалась от Prod в минимуме параметров. Это позволит избежать “work on my machine” багов. Да и вообще, когда один разработчик работает на OS X, другой на Windows, а продакшен на Debian, то жди беды, это не считая того, что каждый делает работу по настройке окружения.
  • Dev конфигурацию хочется разворачивать на любой машине и ОС в пару команд в консоли. Это опять же позволит уменьшить фактор “work on my machine” багов. А еще позволит привлекать других разработчиков в проект за минимальное время (vagrant up и поехали).
  • Конфигурация должна быть понятна и программисту, и админу.

Всего этого мы добьемся на связке Salt + Vagrant на примере Django проекта. Но большинство техник будут полезны разработчикам не только на Python, но на других языках.
Читать дальше →
Total votes 50: ↑47 and ↓3 +44
Comments 34

25 лет со дня полета Бурана

Reading time 6 min
Views 74K
15 ноября исполнилось 25 лет со дня триумфа Советской космонавтики — полностью автоматический полет многоразового транспортного космического корабля Буран. Хроника данного события.

В 1976 году в СССР в обстановке строжайшей секретности началась разработка многоразового транспортного космического корабля Буран в рамках проекта «Буран-Энергия».
Это был грандиозный проект. В его создании принимали участие 86 министерств и ведомств и 1286 предприятий СССР (всего около 2,5 миллиона человек).

Свой первый и единственный космический полёт «Буран» совершил 15 ноября 1988 года. Орбитальный корабль был запущен c космодрома Байконур при помощи ракеты-носителя «Энергия». После облёта Земли Буран произвёл посадку на специально оборудованном аэродроме «Юбилейный» на Байконуре. Полёт прошёл без экипажа, полностью в автоматическом режиме. В отличие от американского Шаттла, который совершал посадку только на ручном управлении.

Более подробно про сам Буран можно узнать на Wikipedia. Но самая полная информация собирается на сайте http://www.buran.ru

image

Читать дальше →
Total votes 160: ↑157 and ↓3 +154
Comments 512

Цифровая погоня за золотым гусём, или как самая большая афера в истории Bitcoin превратилась в фарс

Reading time 7 min
Views 111K
Жертвы недавней аферы в сфере криптовалют попытались вернуть свои украденные биткоины и попробовали обойти анонимность, заложенную в саму основу криптовалюты. В начале декабря был закрыт SheepMarketplace, сайт, который использует биткоины и анонимный браузер Tor для обеспечения онлайн-продаж запрещенных товаров. Администрация сайта сообщила, что один из дилеров нашел баг в системе, который был использован для кражи 5400 BTC.

Но пользователи заподозрили неладное, и посчитали, что сайт, скорее всего, беспричинно удерживает гораздо большие средства, принадлежащие пользователям, и не собирается их возвращать. В итоге, бывшие клиенты SMP объединяются, и находят биткоин-бумажник, содержащий 96000 BTC, которые, как они посчитали, связаны с аферой. По курсу на тот момент содержание кошелька составляло 100 миллионов долларов.


Погоня за деньгами


То, что произошло дальше было возможно только за счет уникальных особенностей системы биткоин, одна из которых — открытость операций между кошельками. В результате, когда деньги начали передаваться между счетами — пользователи последовали за этими транзакциями.
Читать дальше →
Total votes 99: ↑84 and ↓15 +69
Comments 56

«Выглядит похоже». Как работает перцептивный хэш

Reading time 6 min
Views 121K
За последние несколько месяцев несколько человек спросили меня, как работает TinEye и как в принципе работает поиск похожих картинок.

По правде говоря, я не знаю, как работает поисковик TinEye. Он не раскрывает деталей используемого алгоритма(-ов). Но глядя на поисковую выдачу, я могу сделать вывод о работе какой-то формы перцептивного хэш-алгоритма.
Читать дальше →
Total votes 149: ↑145 and ↓4 +141
Comments 46

Мониторинг статистики Django проектов с помощью Pinba на Debian GNU/Linux

Reading time 3 min
Views 9.2K
В данном топике, будет рассказано о пошаговой настройке и конфигурации проекта и сервера с использованием связки pinba-engine + pinboard + django-pinba, для сбора и визулизации статистики проектов на Django.

Все проекты являются бесплатными и их исходный код доступен на GitHub под лицензиями GPL или MIT.

Почему pinba?


В команде есть проекты, которые были написаны на php. Посещаемость у проектов достаточно высокая(свыше 200к). Есть очень много узких мест. Часто после каких-либо обновлений и новшеств, мы получали огромные тормоза, о которых узнавали не сразу. Нужно было решение, которое повернуто лицом к заказчику и программисту. Закачик очень не любит zabbix и munin. Решение нашлось. Это был pinboard и pinba. Заказчику понравилось. Он попросил прикрутить pinba ко всем проектам, которые крутились на django.
Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 14

Создание 1k/4k intro для Linux, часть 4

Reading time 11 min
Views 32K
Доброго всего, мои избыточно терпеливые друзья!
Как очень немногие из вас помнят, во второй части мы остановились на том, что получили прямоугольник на весь экран в сколько-то там сотен байт, и теперь вот уже полтора года стоим перед проблемой заполнения пустоты в наших кодах и сердцах творчеством.

Что же всё-таки можно нарисовать с помощью всего двух треугольников? Квадрат? Фрактал? Полёт сквозь мегатонной мощности взрыв в центре города? Есть ли предел безумию, где заканчивается реальность и начинается явь? Как правильно ухаживать за лучами, чем их кормить и обо что отражать вы узнаете во внезапном продолжении цикла статей про демомейкинг!


Читать дальше →
Total votes 108: ↑104 and ↓4 +100
Comments 11
1

Information

Rating
Does not participate
Location
Рига, Латвия, Латвия
Date of birth
Registered
Activity