Как стать автором
Обновить

Разработка

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Делаем сервер из Android-телефона

Настройка Linux*nixРазработка под AndroidКомпьютерное железо
Tutorial

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Всего голосов 18: ↑18 и ↓0+18
Просмотры4.6K
Комментарии 10

Новости

Показать еще

Алгоритм Краскала, Прима для нахождения минимального остовного дерева

Алгоритмы
Tutorial

Привет, Хабр!

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

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

Читать далее
Рейтинг0
Просмотры594
Комментарии 2

Интерпретируемость машинного обучения: состояние дел

Машинное обучениеНаучно-популярноеИскусственный интеллект
Перевод

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

Я придерживаюсь категоризации, использованной в работе Lipton et al.'s Mythos of Model Interpretability, которую считаю наилучшей статьей, проясняющей различные дефиниции интерпретируемости. Мы рассмотрим множество способов формализовать значение «интерпретируемости». В широком смысле интерпретируемость отвечает на вопрос «как». Она призвана дать понятие о нашей модели и объяснить, каким образом эта модель принимает те или иные решения. Ниже каждый раздел концептуализируется на основе конкретного вопроса, который можно поставить к нашей модели машинного обучения, опираясь на конкретное определение интерпретируемости. Если все это для вас в новинку, объясню для начала, почему нас вообще должна волновать интерпретируемость.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Просмотры868
Комментарии 2

Как успешно подготовиться и сдать экзамен AWS Solutions Architect Associate SAA-C02

Amazon Web ServicesDevOps
Из песочницы

Всем привет!

 Меня зовут Сергей Яворский. Я работаю в EPAM Systems около 5 лет. Я хотел бы поделиться своим опытом в получении сертификатов AWS. На данный момент у меня их три, в этом посте я хочу рассказать о своем процессе участия в программе сертификации AWS Solution Architect Associate SAA-C02 в рамках AWS Global Certification Program от EPAM.

 Сначала хотел бы немного пояснить, зачем мне это понадобилось. У меня было две цели:

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Просмотры1.1K
Комментарии 0

Как писать на C# аккуратно: память и производительность

Блог компании SkillFactoryПрограммированиеСовершенный код.NETC#
Перевод

К старту курса о разработке на C# делимся переводом статьи о типичных ошибках программирования на C# от Кристофа Насарре — технического рецензента книг Microsoft Press в целом и, конечно, книги CLR via C# в частности. Кроме того, Кристоф Насарре — один из авторов книги Windows via C++.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Просмотры2.9K
Комментарии 2

Что если изменить систему единиц времени? Это жестко?

Анализ и проектирование системСистемы сборкиИнженерные системы

Официальный сайт движения за изменение системы единиц времени.

Здесь я подробно напишу на русском языке объяснение.

Читать далее
Всего голосов 31: ↑17 и ↓14+3
Просмотры7.4K
Комментарии 121

Шпаргалка по метрикам производительности cURL: как измерить задержку сервера

Блог компании RUVDS.comРазработка веб-сайтовСистемное администрированиеСерверное администрирование
Перевод


Эту шпаргалку я написал в первую очередь, потому что был несколько озадачен, когда в течение более, чем 10 минут пытался найти в Google значение time_pretransfer. Попробуйте сами, я подожду. Это настоящая загадка!
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Просмотры2.6K
Комментарии 2

Автоматизация учёта в 1С

Клиентская оптимизацияAPICRM-системыОблачные сервисы
Из песочницы

В один из суетливых дней на пороге отдела разработки появился технический директор с горящими глазами и предложением нового проекта, который нужно разработать и внедрить. Желательно не «через год», а в разумные сроки.

По результатам обсуждений собрали основной бриф:

Читать далее
Рейтинг0
Просмотры1K
Комментарии 4

Еще 5 причин выбрать Apache Pulsar вместо Apache Kafka

Высокая производительностьOpen sourceIT-инфраструктураApacheРаспределённые системы
Перевод
Apache Kafka — крайне популярное в настоящий момент решение для обмена сообщениями. Тем более интересно посмотреть какие альтернативы для нее существуют. Особенно декларируемые, как более интересные по ряду параметров.

Под катом — перевод статьи-сравнения Apache Pulsar и Apache Kafka. Статья в некоторой степени рекламная, т.к. написана заинтересованным лицом, но как минимум, возбуждает интерес копнуть глубже. Поехали.

Переведено @middle_java
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Просмотры3.1K
Комментарии 3

Python кодогенерация на благо ETL

Open sourcePythonФункциональное программирование
Из песочницы

В процессе разработки весьма часто встаёт задача преобразования данных, будь то данные от внешнего источника на пути в базу или данные из базы на пути в отчеты и т.п.

Если описывать все необходимые преобразования императивно, то можно довольно скоро загрустить. Можно постараться и сделать всё декларативно, скажем, в виде некоторых dict-ов, в которых задать правила (функции?) по работе с каждым отдельным полем. Но уже на этом этапе появляется несколько проблем (поговорим о них ниже).

Альтернатива: в функциональном стиле динамически задаются конверсии, из них строятся pipeline-ы, далее конверсии генерируют ad-hoc код функций, реализующих заданное преобразование, используя библиотеку convtools.

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Просмотры1.4K
Комментарии 1

Межсетевой прокси: Доступ в Интернет, Tor, I2P и другие сети через Yggdrasil

Блог компании ITSOFTИнформационная безопасностьСетевые технологииСерверное администрированиеI2P
Tutorial

Путешествуя по обычному интернету мы не задумываемся над доменными зонами: ru, com, org и так далее, потому что все они открываются одинаково. Однако, настроив браузер для открытия сайта в сети I2P, вы не откроете onion-домен из сети Tor. Для этого нужно будет сменить настройки прокси-сервера. Поковырявшись с конфигами, вы сможете упростить эту задачу, но, если добавить сюда еще сеть Yggdrasil, тема сильно усложнится. Таким образом настройки вашего браузера будут неизменно усложняться, тем самым создавая поле для потенциальных утечек запросов с вашего настоящего IP-адреса на сомнительные ресурсы. И это при условии, что программы для доступа во все названные сети должны быть установлены на каждое из ваших устройств, где вы хотите ими пользоваться.

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Просмотры2.1K
Комментарии 11

Docker для Data Scientist'a

Big DataМашинное обучениеИскусственный интеллект
Tutorial

Часто у начинающих Data Scientists возникает вопрос, как демонстрировать работу своих моделей другим людям. Банальный пример - прикрепить ссылку на гитхаб репозиторий в отклике на вакансию или показать свое “детище” знакомым со словами “смотрите, что умею”.

Читать далее
Всего голосов 4: ↑2 и ↓20
Просмотры2.2K
Комментарии 4

Почему я «мучаюсь» с JS

JavaScriptTypeScript

Я не знаю TypeScript, поэтому и пишу эту статью. У меня есть некоторый опыт программирования на Java и PHP и этот опыт заставляет меня кодировать на JavaScript'е соответствующим образом. К последней моей статье коммент от коллеги Silverthorne был такой:


export default class TeqFw_Http2_Back_Server {
constructor(spec) {
// EXTRACT DEPS
/** @type {Function|TeqFw_Http2_Back_Server_Stream.action} */
const process = spec['TeqFw_Http2_Back_Server_Stream$'];
/** @type {TeqFw_Web_Back_Handler_Registry} */
const registryHndl = spec['TeqFw_Web_Back_Handler_Registry$'];


зачем все это, когда есть TypeScript?

В ответном комменте я попросил от него продемонстрировать TS-код, который делает то же самое. Он не ответил. Я добавил коммент с просьбой, чтобы кто-угодно продемонстрировал TS-код, который делает то же самое. Ничего. И вот я пишу уже статью с аналогичной просьбой.

Читать дальше →
Всего голосов 39: ↑14 и ↓25-11
Просмотры8K
Комментарии 66

Объектно-ориентированное программирование на Си без плюсов. Часть 2. Таймер

ПрограммированиеCРазработка под Linux

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

    Для Linux в Си в настоящее время есть следующие функции:

unsigned int sleep(unsigned int __seconds); ,

объявленная в файле <unistd.h> и

int nanosleep(const struct timespec *req, struct timespec *rem); ,

объявленная в файле <time.h>

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

    Есть ещё функция clock_nanosleep(), можно включить режимы SHED_FIFO или SCHED_RR для более точной работы, всё это конечно хорошо, но я решил ограничиться только выше указанными.

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

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Просмотры2.5K
Комментарии 12

Как использовать IndexDB для управления состоянием в JavaScript

JavaScriptHTMLБраузеры
Перевод

Эта статья — перевод оригинальной статьи Craig Buckler "How to Use IndexDB to Manage State in JavaScript".

В этой статье объясняется, как использовать IndexedDB для хранения состояния в типичном клиентском приложении на JavaScript.

Код доступен на Github. Он представляет собой пример to-do приложения, которое вы можете использовать или адаптировать для своих собственных проектов.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Просмотры2.5K
Комментарии 7

ИИ в качестве актера озвучки звучит очень по-человечески. И цифровых агентов уже можно нанять

Блог компании Neuro.netМашинное обучениеИскусственный интеллектБудущее здесьГолосовые интерфейсы
Перевод
image

Голосовые агенты становятся все более совершенными. Мы уже рассказывали о том, насколько хорошо они понимают собеседника-человека и способны воспроизводить речь. Использовать цифровых агентов можно не только в качестве «сотрудника» колл-центра, но и в качестве актеров озвучки/дубляжа. Хороший пример — работа компании WellSaid Labs, о которой и рассказывается в этой статье.

Компания WellSaid Labs на своем сайте уведомляет посетителей, что у нее в запасе «восемь новых цифровых актеров озвучки». Тобин «энергичен и проницателен». Пейдж «уравновешенна и выразительна». Ава «отточенная, уверенная в себе и профессиональная».

Каждый цифровой агент использует голос реального актера, конечно, с согласия последнего. Теперь компании могут лицензировать эти голоса, чтобы рассказывать обо всем, что нужно бизнесу. Они просто вводят текст в голосовой движок, и на выходе получается четкий аудиоклип с естественным звучанием.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Просмотры3.6K
Комментарии 8

Blender, 1001 мелочь

Open sourceРабота с 3D-графикойСофт
Tutorial

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

Далее
Всего голосов 5: ↑4 и ↓1+3
Просмотры3.9K
Комментарии 30

Обработка больших данных: первые шаги в понимании Hadoop MapReduce и Spark

Блог компании LuxoftApacheBig DataHadoopData Engineering

Привет, Хабр!

Меня зовут Эмилия Межекова, я ETL-developer в компании Luxoft.

Я расскажу о своём опыте работе с Big Data и почему Spark лучше, чем Hadoop MapReduce в обработке данных. Big Data как концепт довольно понятна, но из-за того, что она включает в себя множество процессов, сложно сказать, с чего именно нужно начать изучение. Как хранятся файлы? Или как получать эти файлы? А может, сразу — как анализировать данные? Читайте подробнее под катом.

Читать далее
Всего голосов 11: ↑8 и ↓3+5
Просмотры2.4K
Комментарии 3

Генератор абсурда за пять минут с NLTK и TreeTagger

Блог компании JoomPythonПрограммированиеNatural Language Processing


Этот текст, при его очевидной абсурдности и лишённости смысла, мог показаться вам смутно знакомым. Это начало поэмы «Москва – Петушки», в котором слова, принадлежащие одной части речи, перемешаны между собой в случайном порядке.

Насколько сложно в наш век всеобщего проникновения машинного обучения и NLP набросать такую игрушку? О, это очень легко.
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Просмотры2K
Комментарии 6

Облачная автоматизация применимо к RPA

Промышленное программированиеОблачные сервисыВизуальное программирование
Из песочницы

Облачные вычисления - это процесс выполнения рабочих нагрузок в облаках - ИТ-средах, которые абстрагируют, объединяют и совместно используют масштабируемые ресурсы в сети. Ни облачные вычисления, ни облака сами по себе не являются технологиями. И такое применение автоматизации не обошло RPA стороной.

Привет! Меня зовут Андрей и я являюсь руководителем направления RPA в компании NTT DATA Business Solutions. За время работы в разработке автоматизированных процессов у меня сложилось определенное понимаение о специфике автоматизиции труда программистов, а именно облачной автоматизации, о чем я бы хотел сегодня написать.

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

В данной статье я приведу в пример распространённую платформу для автоматизации бизнес-решений – UiPath, облачное решение которой– Оркестратор, считается одной из лучших, и посмотрим, какие предложения по облачной автоматизации и управлению RPA- процессами она имеет.

Читать далее
Рейтинг0
Просмотры380
Комментарии 0