Pull to refresh
-10
0

Пользователь

Send message

Gogs: легковесный git-сервис

Reading time5 min
Views62K


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

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

Некоторые прибегают к альтернативному решению и разворачивают GitLab (или другой git-сервис) на собственном или арендованном сервере.

Но и у этого решения есть свои подводные камни: GitLab очень требователен к системным ресурсам. Для частных лиц гораздо проще платить 7 долларов в месяц за GitHub, чем арендовать сервер надлежащей конфигурации.

Из сказанного, однако, не следует, что у GitHub на сегодняшний день альтернативы нет. Об одном весьма интересном и перспективном решении мы хотели бы рассказать в этой статье. Знакомьтесь: Gogs. Этот инструмент будет интересен как для индивидуальных разработчиков, так и для небольших компаний.
Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments63

Некоторая практика применения Hibernate

Reading time16 min
Views15K
Поскольку в процессе продолжения обучения решил разобраться с Hibernate для организации работы с базами данных посредством максимального ухода от использования SQL-запросов, то было решено сформировать некий абстрактный пример. Он должен быть с одной стороны простым, а с другой дать возможность проверить работоспособность всех типовых операций, которые при обращении к БД возникают.

Ниже представляю на суд свое творение. Изначально я опирался на следующий материал. Как по мне он довольно интересен, но всегда интересно сформировать полное приложение, пусть и простое. Итак, что же получилось…
Читать дальше →
Total votes 8: ↑5 and ↓3+2
Comments64

Пособие по Ansible

Reading time29 min
Views673K

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


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

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments15

История одного осциллографа на stm32

Reading time5 min
Views45K


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

На тот момент у меня уже был опыт программирования микроконтроллеров AVR, поэтому решил запустить дисплей на моём любимом Atmega16. Дойдёт ли дело до создания осциллографа тогда ещё не знал, но то что буду в своих проектах использовать TFT знал точно, поэтому не стал искать сторонние библиотеки, а решил написать свою, которой пользуюсь и по сей день.
Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments45

Важные аспекты работы браузера для разработчиков. Часть 2

Reading time8 min
Views27K
image
Автор: Антон Реймер
В первой части статьи, основанной моем вебинаре, мы рассмотрели общие принципы работы браузера. Во второй — я сконцентрировал внимание на важных событиях: repaints и reflows — и на принципах работы event loop.

Repaints and reflows

При загрузке страницы, если она не пустая, всегда выполняется, как минимум, по одному reflow и repaint. Далее эти события возникают в следующих случаях:

1. Часть дерева отображения нуждается в перерасчете, т. е. у какого-то узла изменились ширина, высота или координаты. Вызывается событие reflow.

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

Если вызывается reflow, после него обязательно вызовется и repaint. Но обратное неверно: repaint может вызываться независимо от reflow.

Какие действия вызывают reflow и/или repaint
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments12

Тепловизоры для смартфона Seek Thermal

Reading time3 min
Views45K
Тепловизор — прибор, позволяющий «увидеть» температуру различных предметов, отображающий цветную картинку, в которой разным цветам соответствует разная температура.

Тепловизор поможет обнаружить и устранить утечки тепла или холода, увидеть места локального нагрева или перегрева техники, заметить проблемы с электропроводкой, найти добычу на охоте – в темноте или в кустарнике.

Тепловизоры стоят довольно дорого. Например, Testo 875-1 с матрицей 160x120 точек, который я использовал для измерения температуры светодиодных ламп, стоит 139000 рублей.

Недавно в продаже появились тепловизоры Seek Thermal, подключаемые к смартфонам. Их матрица имеет разрешение 206x156 точек. За счёт того, что всей обработкой и визуализацией занимается смартфон, цена такого тепловизора начинается от 25900 рублей.



Компания Даджет предложила мне протестировать две модели тепловизоров — Seek Thermal и Seek Thermal XR.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments70

Концепты для отчаявшихся

Reading time5 min
Views22K

Всё началось с того, что мне понадобилось написать функцию, принимающую на себя владение произвольным объектом. Казалось бы, что может быть проще:


template <typename T>
void f (T t)
{
    // Завладели экземпляром `t` типа `T`.
    ...

    // Хочешь — переноси.
    g(std::move(t));

    // Не хочешь — не переноси.
    ...
}

Но есть один нюанс: требуется, чтобы принимаемый объект был строго rvalue. Следовательно, нужно:


  1. Сообщать об ошибке компиляции при попытке передать lvalue.
  2. Избежать лишнего вызова конструктора при создании объекта на стеке.

А вот это уже сложнее сделать.


Поясню.

Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments53

Сигнальные и транспортные протоколы WebRTC: срываем покровы

Reading time5 min
Views11K
Наша платформа VoxImplant состоит из нескольких частей: облако, API, SDK для разных платформ. SDK для браузера подключается к облаку по WebSocket и позволяет звонить (и принимать звонки) как другим пользователям VoxImplant, так и на обычные телефоны. Раньше это работало с помощью flash, но в современных браузерах используется специально созданная для работы с голосом и видео технология WebRTC. Штука хорошая, но довольно сложная в использовании: возможность peer-to-peer коммуникаций, одна из ключевых «фишек» технологии, управляется полностью вручную. Чтобы два браузера могли организовать голосовой или видеочат друг с другом, разработчику нужно собрать информация об IP-адресах компьютеров, как-то передать эту информацию между браузерами, запустить NAT Traversal и скормить это все WebRTC. А если обойти NAT не получилось, то еще и предоставить Relay-сервер для передачи данных.

Недавно мы нашли на просторах интернета интересную статью, которая рассказывает технические подробности «передачи информации» между браузерами. Адаптированный для Хабра перевод – под катом.
Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments6

Ansible с чего начать

Reading time8 min
Views174K
В последние пару лет я все чаще использую Ansible для решения практически любых задач связанных с автоматизацией, будь то конфигурирование, резервное копирование или деплой проектов. Не смотря на то, что система очень хорошо документирована, я думаю смогу добавить немного полезной информации для тех кто еще только начинает пользоваться Ansible. Для начала я хотел бы рассказать об основных вещах, таких как структура проекта в котором будут содержаться плейбуки, роли, переменные, шаблоны и файлы необходимые для автоматизации развертывания серверов, кода и всего другого, что можно сделать с помощью Ansible.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments44

Получаем доменное имя, DNS и SSL сертификат нахаляву

Reading time3 min
Views29K
Привет, Хабр. Данный пост предназначен для любителей халявы и содержит готовый рецепт по получению доменного имени, услуг DNS-сервера и SSL-сертификата с затратами 0 рублей 0 копеек. Бесплатный сыр бывает только в мышеловке и это правда, так что рецепт скорее для тех кто хочет красивую ссылку на свой личный небольшой проект с поддержкой https а не для серьёзных проектов.

Читать дальше →
Total votes 44: ↑19 and ↓25-6
Comments33

Мои прохладные истории

Reading time4 min
Views63K
Приезжали тут представители одной западной корпорации в очередной раз. Выпили. Спросили про наши варварские особенности IT. Ну я и рассказал пару баек. Чухна не поверила, говорит, мне повезло, и это всё статистический выброс. Мне так почему-то не кажется — подобных историй у каждого с чемодан.



Один раз коллега из L2-поддержки говорит: забери сумочку на объект, раз уж в тот же город едешь. Ок, говорю, не вопрос, конечно заберу. Приезжаю в офис с портфелем, а там стоят три охранника и этот вот товарищ из L2. У них с собой сумка чёрная спортивная, здоровенная. Открывается с трудом, но всё равно открываю, заглядываю — а там одна-к-одной плашки оперативной памяти для серверов-молотилок одной компании, условно «на три буквы».

Примерно прикидываю ценность «сумочки»: говорю, что, друг, тысяч триста долларов тут, да? Не, говорит, тут полмиллиона. Езжай давай. Вот парни тебя до входа в аэропорт проводят, а дальше ты уж сам. Из аэропорта прибытия я не выходил, пока встречающий не забрал сумочку.
Читать дальше →
Total votes 116: ↑103 and ↓13+90
Comments93

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

Reading time6 min
Views29K
От автора: В статье приведены мои слайды и заметки с выступления от 25 июня 2016 года на конференции WordCamp Europe. Говорил я примерно то же самое.



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

Программное обеспечение поедает мир


Известна фраза от Марка Андреессена, создателя браузера Netscape: «программное обеспечение поедает мир». Я хочу уточнить, что мир поедает ПО с открытым кодом, и у меня есть парочка аргументов в пользу моей версии.

Во-первых, результаты опроса 2015 года «будущее открытого ПО»: «78% анкетируемых сказали, что частично работают при поддержке ОПО, и 66% сказали, что создают ПО для клиентов на основе ОПО. Эти цифры почти удвоились с 2010 года».

Во-вторых, Надья Эгбал [Nadia Eghbal], проводящая интересные исследования экономики ОПО, подсчитала, что «Доля ОПО в приобретённом за $1 миллиард Instagram составляла не менее $143 миллионов».

Мне кажется, у этого кембрийского взрыва ОПО есть несколько причин:
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments23

Электромотор самой недорогой модели автомобиля Tesla мощнее, чем двигатель BMW M3

Reading time2 min
Views44K
В Tesla Model 3 будут использоваться аккумуляторы последней модификации с «Гигафабрики Tesla»



Компания Tesla собирается устанавливать в своих новых электромобилях Tesla Model 3 аккумуляторы, которые производятся сейчас на «Гигафабрике» из Невады. Новые силовые агрегаты, как обещает компания, будут более мощными и эффективными. Преобразователь был разработан с нуля, предыдущие модели, которые работали в той же Tesla Model S, не используются. Новое здесь все, включая полупроводниковые элементы системы. Инженерам компании удалось снизить количество уникальных элементов инвертора примерно на 25%, что позволяет удешевить конструкцию.

Кроме того, Model 3 получила 435-сильный электромотор. Об этом сообщил технический директор Tesla. Это даже больше, чем у BMW M3, где установлен трехлитровый шестицилиндровый твин-турбо двигатель (максимум — 431 л.с.). Благодаря мощному мотору самая медленная модификация модели сможет разгоняться до 96 километров в час всего за 6 секунд. У старшей модели с продвинутым режимом Ludicrous Mode на разгон до этой скорости уйдет всего 4 секунды.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments64

Экономическое чудо по-сингапурски

Reading time12 min
Views37K
Сингапур — маленькая, но удивительная страна. Год обретения независимости, 1965-й, стал началом пути государства из числа бедных стран третьего мира до одного из признанных мировых лидеров, как по уровню экономического развития, так и по уровню жизни и внедряемых технологий. В текущем году Сингапур возглавил рейтинг умных городов по версии Juniper Research. О самобытном пути этого удивительного города-минигосударства, достигнутых им успехах и ближайших перспективах мы расскажем в нашей сегодняшней публикации.

image
Подробнее
Total votes 34: ↑27 and ↓7+20
Comments125

Задача недоказуемой передачи данных

Reading time3 min
Views7.9K
Это несколько неформатный пост. Этот пост — вопрос к Хабрасообществу, ответа на который я не знаю. Возможно, ответа нет. Лично у меня не получилось до конца осознать точную постановку вопроса.

Эта публикация, кроме того — память о человеке, от которого я впервые услышал о такой задаче.
Читать дальше →
Total votes 104: ↑82 and ↓22+60
Comments187

Многочисленные критические уязвимости в антивирусах Symantec/Norton

Reading time4 min
Views17K

Опубликован рабочий эксплоит для всех версий антивирусов. Вскрыт факт заимствования кода под GPL




Вчера Тэвис Орманди (Tavis Ormandy) из хакерского подразделения Project Zero компании Google выложил в открытый доступ информацию о многочисленных уязвимостях в антивирусных программах Symantec, в том числе уязвимостях с удалённым исполнением кода.

Некоторые специалисты говорят, что установленная на компьютере антивирусная программа, учитывая её максимальный уровень привилегий в системе, может стать дополнительным вектором атаки, то есть дополнительной брешью в общей безопасности системы. Пример Symantec демонстрирует это настолько явно, насколько такое возможно. В некоторых случаях под Windows вредоносный код загружается прямо в ядро операционной системы, что ведёт к повреждению памяти ядра.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments23

Собираем ваш первый WebAssembly-компонент

Reading time6 min
Views29K
Когда я впервые услышал о технологии WebAssembly — она сразу показалось мне крутой вещью и мне сразу захотелось попробовать её в деле. От первого желания, до чего-то работающего мне, однако, пришлось потратить немало времени и порой испытать кое-какие разочарования. Для того, чтобы сохранить ваше время и ваши нервы, если вам захочется повторить тот же путь, и написана данная статья.

image
Предупреждение читателю

Эта статья написана 24-го июня 2016-го года. Поскольку WebAssembly очень молодая и динамично развивающаяся технология, со временем многие описанные в данной статье вещи устареют или полностью изменятся — учитывайте это.

А теперь поехали.

Что такое WebAssembly?

Официальная документация говорит следующее: «WebAssembly или wasm это новый портабельный, эффективный по размеру и скорости загрузки формат компиляции для веба». Эм-м-м-м… Что? Формат чего? Текстовый или бинарный? Да, это откровенно плохое описание. Так что убирайте уже ваши баззворд-бинго карточки и я, на основе моего опыта, дам своё определение:

«WebAssembly или wasm это спецификация байткода для написания производительных, браузеро-независимых компонентов для веба». Это определение, тоже, конечно, не вершина эпистолярного жанра, но я попробую его дополнить. WebAssembly позволяет повысить производительность с помощью использования статически типизированных переменных, которые обходятся на рантайме значительно дешевле динамических. WebAssembly разрабатывается W3C Community Group и планируется быть внедрённым во все основные браузеры. И с этого момента на стол выкладывается киллер-фича: вы сможете писать код веб-компонентов на любом языке программирования.

Теперь звучит лучше, неправда ли?
Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments30

Стартап из Украины предложил беспроводную зарядку, способную зарядить до 8 iPhone одновременно в радиусе до 10 метров

Reading time3 min
Views25K
Украинский стартап Technovator XE представил действующий прототип беспроводной зарядки для нескольких смартфонов одновременно. Проект основан сооснователем CTO Concepter и создателем вспышки iBlazr Иваном Чубой.

image
Подробнее
Total votes 36: ↑24 and ↓12+12
Comments175

Побеждаем шину CAN. Часть 1. Технология

Reading time5 min
Views78K
image

Сегодня я хочу познакомить вас с интересной микроконтроллерной платформой CANNY. Это обзорная статья в которой вы узнаете о технологии, а в последующих статьях я расскажу вам о работе с сообщениями CAN, интеграции CANNY c Arduino Mega Server и о тех возможностях, которые предоставляет эта связка.

Почему CANNY? От названия шины CAN, которая широко используется на транспорте и, в частности, во всех современных автомобилях в качестве бортовой сети. Итак, что же можно сделать, имея специализированный контроллер, подключённый к CAN шине вашего автомобиля?
Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments15

Форк блокчейна Ethereum, или «вот так свобода и умирает, под гром аплодисментов»

Reading time6 min
Views32K
Звёздные войны. Эпизод III: Месть ситхов. Сцена с выступлением, пока еще, канцлера Палпатина в сенате.

Криптовалюта Ethereum стоит на историческом распутье, которое оставит неизгладимый след в её истории. О «чёрных списках», централизованной «децентрализованной автономности» и почему сообщество с такой радостью, рвением и беззаботностью открывает ящик регуляции криптовалюты, тем самым забивая гвозди в гроб Ethereum.
Читать дальше →
Total votes 50: ↑42 and ↓8+34
Comments165

Information

Rating
Does not participate
Registered
Activity