Pull to refresh
7
0
Send message

Как безопасно программировать в bash

Reading time11 min
Views44K

Почему bash?


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

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

Предисловие


Данное руководство сопровождает ShellHarden, но автор также рекомендует ShellCheck, чтобы правила ShellHarden не расходились с ShellCheck.

Bash — не тот язык, где самый правильный способ решить проблему одновременно является самым простым. Если принимать экзамен по безопасному программированию в bash, то первое правило BashPitfalls звучало бы так: всегда используй кавычки.

Главное, что нужно знать о программировании в bash


Маниакально ставить кавычки! Незакавыченная переменная должна расцениваться как взведённая бомба: она взрывается при контакте с пробелом. Да, «взрывается» в смысле разделения строки на массив. В частности, расширения переменных вроде $var и подстановки команд вроде $(cmd) подвергаются расщеплению слов, когда внутренняя строка расширяется в массив из-за расщепления в специальной переменной $IFS с пробелом по умолчанию. Это обычно незаметно, потому что чаще всего результатом становится массив из 1 элемента, неотличимый от ожидаемой строки.
Читать дальше →
Total votes 74: ↑73 and ↓1+72
Comments39

Побеждаем Android Camera2 API с помощью RxJava2 (часть 2)

Reading time8 min
Views13K
image

Это вторая часть статьи, в которой я показываю, как использование RxJava2 помогает строить логику поверх асинхронного API. В качестве такого интерфейса я выбрал Android Camera2 API (и не пожалел!). Этот API не только асинхронен, но и таит в себе неочевидные особенности реализации, которые нигде толком не описаны. Так что статья нанесет читателю двойную пользу.

Для кого этот пост? Я рассчитываю, что читатель — умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение — здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто планирует использовать Camera2 API в своих проектах.  

Исходники проекта можно найти на GitHub.

Чтение первой части обязательно!
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments5

Видео с камеры наблюдения на сайте бесплатно и без смс

Reading time4 min
Views26K
Появилась необходимость показывать видео с камеры на сайте в режиме онлайн. Виделось несколько вариантов (дополню вариантами из комментов, если будут):

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

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

Подробнее изобретения под катом.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments29

Обзор: карманный дозиметр нового поколения Atom Fast

Reading time4 min
Views50K
Привет geektimes. Как человек, увлекающийся всякими гаджетами, я разумеется, имею дома дозиметр. Не из соображений радиофобии, а исключительно как интересный физический прибор, которым можно что-нибудь измерить. Давно была мысль попробовать новые дозиметры — сцинтиляционные, однако главное что останавливало, это цена. Наконец, под Новый год удачно совпали время, наличие денег и свободного времени, и в итоге Санта Клаус в лице сотрудника почты, принес мне небольшой сувенир и дозиметр Atom Fast.



Как это работает, подробности под катом.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments226

Как в первый раз запустить i2pd: инструкция под Debian/Ubuntu

Reading time4 min
Views61K


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

В i2p ты можешь заниматься множеством вещей: посещать и создавать сайты, форумы и торговые площадки, принимать почту, чатиться и скачивать торренты, и многое многое другое. Программа i2pd способна работать с большим числом программ и сервисов.
Читать дальше →
Total votes 45: ↑35 and ↓10+25
Comments78

OAuth 2.0 простым и понятным языком

Reading time7 min
Views790K
Логотип OAuth 2.0

На хабре уже писали про OAuth 1.0, но понятного объяснения того, что такое OAuth 2.0 не было. Ниже я расскажу, в чем отличия и преимущества OAuth 2.0 и, как его лучше использовать на сайтах, в мобильных и desktop-приложениях.

Что такое OAuth 2.0


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

Читать дальше →
Total votes 168: ↑153 and ↓15+138
Comments44

Домашнее видеонаблюдение

Reading time8 min
Views124K
Причина, по которой я сделал систему видеонаблюдения дома, простая. Ребенок подрос, жене невероятно хотелось выйти на работу, пусть ненадолго. Но отдавать ребенка в садик еще рано. Так что мы наняли няню, а одним из инструментов контроля стала система видеонаблюдения.
Начал я с такого отступления, чтобы были понятны задачи, которые система должна решать:
  1. Наблюдение за людьми внутри помещения;
  2. Выделенное рабочее место оператора отсутствует;
  3. Удаленный доступ;
  4. Архивирование видео на срок не менее 7 дней;
  5. Максимальная экономия бюджета.



Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments80

Как красиво оформить публикацию на Хабре

Reading time7 min
Views45K
Публикация – основная единица связи автора с читателем. Практика показывает, что на Хабре можно разместить почти любой формат: небольшой анонс и лонгрид-обзор, интервью, фотоотчёт, трансляцию события, урок и многое-многое другое. Нередко успех публикации зависит и от её оформления – приятно оформленный материал читать одно удовольствие. В этой статье мы постараемся предоставить вам много полезных советов по хорошему оформлению материала.

И первый лайфхак – кликабельная картинка до ката, которая ведёт сразу внутрь публикации:


Читать дальше →
Total votes 140: ↑121 and ↓19+102
Comments112

40+ полезных инструментов для разработчика приложений под Android

Reading time6 min
Views55K
Для выхода на мобильный рынок не нужно тратить тысячи долларов и месяцы работы. Для создания приложения для собственного бизнеса, продукта или услуги вам нужно лишь знать Java и найти подходящие инструменты. Сейчас таких инструментов уже тысячи. Мы попытались составить из них набор, необходимый для разработки, тестирования, монетизации, анализа и улучшения приложений.

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

41. JSONView
jsonview.com

image

Расширение для Firefox, которое позволяет просматривать JSON в браузере. Документ выглядит отформатированным, есть подсветка и можно сворачивать и раскрывать объекты и массивы.

40. Android GUI Set
www.bypeople.com/free-photoshop-android-interface-gui

image

Набор интерфейсов, в который входят и файлы для фотошопа. Главное меню, клавиатура, панель статуса, браузер, слайдер, список контактов, и т.д. и т.п.
Читать дальше →
Total votes 33: ↑22 and ↓11+11
Comments16

Какие впечатления может дать вам картонка от Google

Reading time3 min
Views18K
Многие наверняка знают о проекте Google Cardboard. Это, пожалуй, самое дешевое решение для виртуальной реальности из ныне существующих. Как и все гениальное — это простейшее устройство. Оно представляет собой картонную коробочку для смартфона с двумя линзами, что позволяет вам смотреть на дисплей вашего телефона, как на два огромных экрана, показывающих картинку, сводимую мозгом в одну целую. Смартфон отлично справляется с задачей обработки вращений головы, и поэтому создается эффект виртуальной реальности.

В этом году Google на своей ежегодной конференции разработчиков уделял много внимания погружению в виртуальный мир на 360 градусов:
— был представлен Jump — массив из 16 GoPro для съемки сферического стерео видео
— объявлена поддержка школ в осуществлении виртуальных экскурсий при помощи CardBoard
— сам зал конференции имел экран, показывающий видео со всех сторон помещения, что не двусмысленно намекало о важности VR-направления для Google
— ну и, конечно, на конференции обновили представленный в том году CardBoard.



На прошлой неделе ко мне в руки прямиком из Сан-Франциско попала как раз такая картонка.
Спешу поделиться впечатлениями.
Total votes 31: ↑21 and ↓10+11
Comments14

Нью-Йорк — самый мусорный город на планете, а в Москве — одна из самых эффективных систем отопления

Reading time2 min
Views32K
В Москве — одна из крупнейших и эффективных в мире систем отопления, Нью-Йорк — самый мусорный город в мире и потребляет энергию «как свинья», а Токио великолепно экономит воду. Таковы результаты исследования «Метаболизм мегаполисов», показывающие потребление ресурсов 27 крупнейшими мегаполисами планеты.

image
Читать дальше →
Total votes 59: ↑44 and ↓15+29
Comments490

Как теряют бизнес. Реальные истории от бизнес-консультанта

Reading time16 min
Views50K
Поговорить о том, какие причины способствуют гибели существующего и часто даже успешного на определенном этапе бизнеса, я планировал давно, но все не доходили руки. Но недавно я услышал о банкротстве моего бывшего клиента. Именно этот факт стал для меня неким толчком. Я осознал, что именно сейчас, в условиях кризиса очень важно понимать, почему бизнес может окончиться крахом и учиться избегать подобных ситуаций.

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

Так происходит и в бизнесе. Если в период подъема экономики какие-то недостатки конкретного бизнеса сглаживаются, остаются незамеченными и даже не слишком мешают работать, то в периоды экономического спада они становятся теми самыми «тонкими местами», которые приводят к снижению прибыли, к определенным проблемам, а иногда даже к полному краху всего бизнеса.
Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments22

Бюджетные FPV квадрокоптеры

Reading time6 min
Views34K
В этом году я успел уже рассказать о том, как выбирал мини-квадрокоптер за 20$ и о том, как нашёл для себя мини-квадрокоптер с камерой за 40$ и даже рассказал о том, как устроил мини-соревнования на коптерах в парке-музее «Коломенское». Но после каждой публикации ко мне поступало много вопросов именно о выборе бюджетного квадрокоптера, который умеет транслировать видео на пульт. Понятно, что многих людей интересует именно бюджетный вариант первого квадрокоптера, так как после моей статьи «Купить квадрокоптер и попрощаться с ним» многие стали свидетелями того, как за несколько минут я попрощался квадрокоптером за 500$, подвесом за 300$ и камерой за 600$, что в современной России очень не бюджетно.

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


Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments13

Выразительный JavaScript: Проект: Веб-сайт по обмену опытом

Reading time22 min
Views37K

Содержание




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

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


Встречи моноциклистов

В последней главе-проекте мы устроим веб-сайт по обслуживанию выступлений, которые делаются на таких встречах. Представьте себе группу людей, которые регулярно встречаются в офисе одного из участников, чтобы поговорить о моноциклах. Проблема в том, что когда предыдущий организатор встреч переехал в другой город, никто не занял его место. Нам нужна система, которая позволит участникам предлагать и обсуждать темы друг с другом, без участия организатора.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments9

Новая плата для разработчиков OptimusBoard на базе восьмиядерного big.LITTLE SoC AllWinner A80

Reading time2 min
Views29K
OptimusBoard

Первая отладочная плата Cubieboard версии 1, на процессоре AllWinner A10 была выпущена в октябре 2012 г..Потом последовали выпуски Cubieboard версии 2, процессор AllWinner A20. И Cubieboard 3, или Cubietruck. В отличие от предыдущих версий, на плате Cubietruck дополнительно были размещены беспроводные модули Wi-Fi+BT со встроенной антенной.

В начале 2014 г. компания NanoXion запустила первый хостинг colocation(колокейшн) на базе платы CubieBoard(Cubiebox).
На выставке CES 2014 компания Allwinner Tech представила публике будущую отладочную плату Optimus Board на базе SoC AllWinner A80.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments25

Что делать, если «кина не будет» или как обойти блокировку сайта провайдером

Reading time6 min
Views1.5M
Настал мой законный выходной и, выбрав время для просмотра фильма (люблю я старую классику), я занялся его поиском. Зайшел на один из привычных для меня сайтов, и наткнулся на такую вот блокировку данного ресурса.

блокировка

«Вот те раз!» — подумал я. Ни в одном реестре запрещенных сайтов данный ресурс не присутствовал и, с чего билайн его заблокировал — непонятно. Естественно после таких вот «заявочек» в голову полезли страшные мысли: «а что если завтра любимого „кина“ не будет!». Данные мысли тут же подвигли меня начать искать способы борьбы с данной ситуацией, и написать, для тех кому будет интересно, маленький обзор нескольких решений по обходу блокировки сайтов. (под катом скрины)
Читать дальше →
Total votes 120: ↑96 and ↓24+72
Comments87

Айтишник на отдыхе: а как насчет телескопа?

Reading time10 min
Views138K


Вы прочитали пост о том, что наблюдать на небе, посмотрели сами, показали друзьям и заинтересовались темой. Логичное следующее желание — купить телескоп и смотреть на те же красоты уже хорошо вооруженным глазом. Но эта задача не такая простая, как может показаться, выбор зависит от различных параметров. Поэтому пост с описанием различных оптических схем телескопов, монтировок, думаю, окажется полезным.
Читать дальше →
Total votes 147: ↑144 and ↓3+141
Comments138

Об искусственном интеллекте в покере

Reading time8 min
Views52K


Покер давно привлекает исследователей самых различных мастей от любителей до серьезных ученых. И, не секрет, что столь пристальное внимание к покеру коррелирует с ростом популярности онлайн гэмблинга, который бурно развивался в 00-х годах. На сегодняшний день человек уже уступил лимитный хедс-ап Техасский Холдем машине, в то время как в безлимитных и многоместных покерных дисциплинах человек все еще берет верх. Наибольший вклад в проблему построения сильного компьютерного покерного интеллекта, вне всякого сомнения, внесла исследовательская группа из университета Альберты, а предложенное ими семейство алгоритмов поиска равновесных стратегий является на сегодняшний день самым модным и часто используемым средством при построении покерных агентов. Но обо всем по порядку.
Читать дальше →
Total votes 73: ↑68 and ↓5+63
Comments28

Nokia 105 за 15 евро с фонариком и аккумулятором 800 мА·ч

Reading time1 min
Views269K
На выставке MWC 2013 Nokia представила два новых телефона: Nokia 301 и Nokia 105


Nokia 301 (слева), Nokia 105 (справа)

Nokia 301


  • Цена ~65 евро
  • 2,4” дисплей
  • Камера 3,2-Мп
  • Два слота для SIM-карт
  • Поддержка сетей 3,5G


Nokia 105


  • Цена ~15 евро
  • Цветной экран
  • FM–радио
  • Фонарик
  • Повышенная устойчивость к воздействию влаги и пыли
  • Цвет корпуса: черный, голубой
  • Продолжительность автономной работы в режиме ожидания составляет около 35 дней


Подробнее можно прочитать на 3dnews

Я считаю это то, чего ждал мир :) Лично я — точно.
Читать дальше →
Total votes 176: ↑166 and ↓10+156
Comments240

За счета за границей — штраф до 100%

Reading time1 min
Views273K

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

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

Все переводы на зарубежные счета должны будут вестись транзитом через российские банки, штраф за нарушение — от 75% до 100% от суммы перевода. И даже проценты по депозитам с зарубежных счетов должны сначала пройти через российские банки, прежде чем вернуться на зарубежные счета.
Читать дальше →
Total votes 139: ↑124 and ↓15+109
Comments345

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity