Pull to refresh
0
0
Павел @nimistar

User

Send message

Ближайшее будущее аккумуляторных батарей

Reading time33 min
Views107K
В последние годы все острее встает вопрос усовершенствования мобильных источников энергии — вопрос как глобальный, так и повседневный. Глобальная сторона заключается в том, что человечество, остро нуждаясь в энергии в любой её форме, выбрало в качестве свободноконвертируемой электрическую. Причина – относительно низкие потери при обратном переводе из электрической в любую другую, а так же низкие потери при передаче от точки выработки (электростанция) до стационарной точки потребления (э/розетка). Основным источником электроэнергии на сегодняшний день является сжигание на ТЭС невозобновляемого углеводородного топлива, которого с каждым годом все меньше, а цена всё выше. Основной вред окружающей среде наносят тем не менее не ТЭС, а двигатели внутреннего сгорания автомобилей, в виду компактности не столь эффективные и оснащенные не столь же хорошими системами очистки.
Все говорит, что работай автомобили на электротяге, наш мир стал бы намного чище, а жизнь со временем даже дешевле

Но вряд ли многие из нас, не считая борцов за зеленый мир, и даже считая оных, думают об этом каждый день. Гораздо чаще мы вспоминаем недобрым словом какой-нибудь значок на дисплее нашего ноутбука или телефона, увидев что пользоваться им осталось минут 20. И вопрошаем:”Ну когда же они сделают нормальную батарейку, а?”.
Читать дальше →
Total votes 269: ↑249 and ↓20+229
Comments141

Как я нашел пасхалку в защите Android и не получил работу в Google

Reading time12 min
Views99K
Гугл любит пасхалки. Любит настолько, что найти их можно практически в каждом продукте компании. Традиция пасхалок в Android тянется с самых первых версий операционной системы (я думаю, все в курсе, что будет, если в настройках несколько раз нажать на строчку с версией Android).

Но бывает и так, что пасхалки обнаруживаются в самых неожиданных местах. Есть даже такая легенда: однажды один программист загуглил «mutex lock», а вместо результатов поиска попал на страницу foo.bar, решил все задачи и устроился на работу в Google.

Реконструкция событий
image

Вот такая же удивительная история (только без хэппи-энда) произошла со мной. Скрытые послания там, где их точно не может быть, реверс Java кода и нативных библиотек, секретная виртуальная машина, прохождение собеседования в Google — все это под катом.
Читать дальше →
Total votes 279: ↑277 and ↓2+275
Comments302

Где покупать радиодетали и компоненты? Часть I: Россия

Reading time4 min
Views166K
Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

б) для профи, с широкой номенклатурой электронных компонентов.

Продолжение: Часть II: зарубежные магазины

Кадр из к/ф «Иван Васильевич меняет профессию»
Продолжение
Total votes 130: ↑120 and ↓10+110
Comments158

Ручные монстры в борьбе за чистоту: выбор ручного пылесоса Xiaomi

Reading time6 min
Views57K
Совсем недавно известная краудфандинговая площадка Xiaomi вышла на рынок ручных пылесосов с новой интересной моделью. В статье речь пойдет о пылесосе Roidmi F8, который спроектирован в фирменном стиле Xiaomi — строгий белый минималистичный дизайн и максимум функционала. И сравнивать буду с популярной моделью V8 от Dyson.


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

Как облегчить изучение английского: 5 полезных сервисов

Reading time2 min
Views22K


Привет, Хабр! В последние пару лет я увлекся изучением английского языка и периодически пробую различные новые сервисы. В сегодняшнем топике я поделюсь список из пяти новых приложений и сайтов, которые помогают улучшить навыки устного общения, расширить словарный запас, освоить грамматику и повысить качество письменного английского.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments14

Вотериус: Передача показаний воды на телефон по Wi-Fi (4 года от батареек)

Reading time6 min
Views92K


Однажды мне надоело снимать показания счётчиков воды. Можно было поселить рядом со счетчиком магнит и на этом успокоиться, но этот путь я счёл неспортивным.

Мой путь оказался непростым и витиеватым. Но в результате получилось устройство, передающее показания воды по Wi-Fi на телефон. Простое и понятное в использовании и настройке хоть школьнику, хоть гуманитарию пенсионеру. А знакомым со словом «Ардуино» — ещё и несложное для изготовления. Девайс способен работать от батареек четыре года (дольше, чем длились отношения с вашей бывшей). Это ещё и первый открытый проект с такими характеристиками. Заводские аналоги я выписал, их мало, да и ладно с ними.

Итак, у нас есть немного денег и большое, но честное желание упростить себе жизнь, не нарушая Уголовный Кодекс. И чтобы никаких этих ваших 220В, серверов и кучи кнопок! Показания смотрим на смартфоне в приложении Blynk или аналогичном сервисе.

Теперь устройтесь в кресле поудобнее, съешьте ещё этих мягких французских булочек да выпейте чаю. Смотрите красивые фотографии и слушайте мой рассказ о том, что надо учитывать при создании автономных устройств. Но сначала краткое описание Вотериуса.
Читать дальше →
Total votes 127: ↑126 and ↓1+125
Comments205

Дела подводные — для роботов

Reading time17 min
Views26K

Intro


Поверхность планеты примерно на 71% покрыта океанами (порядка 361 млн. км²). Площадь РФ примерно 17 млн. км. Глубина океанов неравномерна, выделяют следующие зоны:

Шельф (shelf — полка) — глубина до 200—500 м;
Континентальный склон — глубина до 3500 м;
Океанское ложе — глубина до 6000 м;
Глубоководные желоба — глубина ниже 6000 м.

Средняя глубина также отличается:

Атлантический — 3600 м
Индийский — 3890 м
Северный ледовитый — 1225 м
Тихий — 4250 м

image

Зачем человек лезет под воду?
Total votes 54: ↑54 and ↓0+54
Comments40

«Сделано в России» — язык программирования WBASIC для разработки серверных веб-приложений

Reading time3 min
Views12K

Здравствуй, Хабр!


Предлагаю Вам обратить внимание на проект «Сделано в России» — отечественного языка для веб-разработки. Проект разработан в Екатеринбурге, а не является локализация западного, что большая редкость, так как языков программирования разрабатываемых у нас не много.

WBASIC — Акроним Web Beginner's All-purpose Symbolic Instruction Code.
Высокоуровневый язык программирования применяемый для разработки серверных веб-приложений.

Это диалект языка BASIC, разработаный с учетом работы в сети Интернет в 2017 году, а сам синтаксис языка в 1964.

image

Философия языка — это должно быть просто для начинающих. И надеюсь, мне это удалось. Вся документация по языку умещается на сегодня всего в 9 разделах и освоить их можно за один-два дня.
Читать дальше →
Total votes 51: ↑21 and ↓30-9
Comments284

Docker для Symfony 4 — от локалки до production

Reading time15 min
Views50K

Предистория


Одним прекрасным днём мне понадобилось развернуть среду разработки для своего проекта. Vagrant уже порядком поднадоел и хотелось иметь единую среду разработки для всех участников проекта которая была бы идентичной production серверу. Соответственно наслушавшись информации про хипстерский docker, я решил начать с ним разбираться. Далее я постараюсь максимально подробно описать все шаги начиная от установки докера на локалке вплоть до разворачивания продуктива на KVM.

Исходный стек технологий:

— Docker
— Symfony 4
— nginx
— php-fpm
— postgresql
— elasticsearch
— rabbitmq
— jenkins

Железо:

— ноутбук под ОС Ubuntu 16.04
— продакшн сервер на хостинге KVM

Почему кроме технологического стека я перечислил ещё и стек железа?

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

Первый и наверно самый важный аспект при начале работы с докером — это операционная система вашего ноутбука. Проще всего работать с докером именно на linux системах. Если вы работаете на Windows или Mac то у вас 100 % будут некоторые сложности, но эти сложности не будут являться критическими и при желании «нагуглить» как это исправляется не составит никаких проблем.

Второй вопрос — это хостинг. Зачем нужен Hosting именно с типом виртуализации KVM? Причина в том, что виртуализация VPS разительно отличается от KVM и установить сам docker на VPS у вас попросту не выйдет, так как VPS распределяет ресурсы сервера динамически.

Подитог: для самого быстрого старта на докере резоннее всего выбирать Ubuntu в качестве локальной операционки и KVM хостинг (либо собственный сервер). Далее рассказ пойдёт опираясь именно на эти две составляющие.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments46

Кастомный подход для нормализации и сброса стилей (custom-reset.css)

Reading time9 min
Views27K


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

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

Надеюсь вы подчеркнете для себя что-то полезное, здесь вы можете ознакомиться с ним.
custom-reset.css
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments34

Тестировать только через public-методы плохо

Reading time4 min
Views6.5K
В программировании и в TDD, в частности, есть хорошие принципы, которых полезно придерживаться: DRY и тестирование через public-методы. Они неоднократно оправдали себя на практике, но в проектах с большим legacy-кодом могут иметь «тёмную сторону». Например, ты можешь писать код, руководствуясь этими принципами, а потом обнаружить себя разбирающим тесты, охватывающие связку из 20+ абстракций с конфигурацией, несоизмеримо превосходящей по объему тестируемую логику. Эта «тёмная сторона» пугает людей и тормозит использование TDD в проектах. Под катом я рассуждаю, почему тестировать через public-методы плохо и как можно уменьшить проблемы, возникающие из-за этого принципа.
Читать дальше →
Total votes 26: ↑13 and ↓130
Comments29

Разбираемся с объектами в JavaScript

Reading time7 min
Views24K
В этом материале автор — фронтенд-разработчик — сделал обзор основных способов создания, изменения и сравнения объектов JavaScript.


Объекты — одно из основных понятий в JavaScript. Когда я только приступил к их изучению, они показались мне довольно простыми: всего лишь пары ключей и значений, как и описывалось в теории.

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

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

Итак, давайте начнем с основ.

Объект


Объект в JavaScript — это просто набор свойств, каждое из которые представляет собой пару ключ-значение. Обратиться к ключам можно с помощью точечного (obj.a) или скобочного обозначения (obj['a']).

Помните, что скобки следует использовать, если ключ:

  • не является допустимым JavaScript-идентификатором (в нем есть пробел, тире, начинается с цифры...)
  • является переменной.

Одно из свойств, которое объекты в JS получают при создании, называется Prototype, и это очень важное понятие.
Читать дальше →
Total votes 22: ↑16 and ↓6+10
Comments7

Обзор OnePlus 6. Когда китайцы сделали все то же самое, что и в прошлый раз

Reading time5 min
Views16K
В России многие любят китайские смартфоны. Как правило, при их покупке пользователь также приобретает ворох проблем в виде неотлаженного ПО и несбалансированной конфигурации. Впрочем, счастливые исключения есть — это, конечно же, телефоны Xiaomi и OnePlus. И если у первых есть решения самого разного ценового сегмента, то устройства OnePlus это всегда «топ или около того» на момент выпуска.


Читать дальше →
Total votes 34: ↑20 and ↓14+6
Comments69

DevConf: из шаурмы в Symfony или миграция legacy

Reading time4 min
Views5.5K
Под занавес прошлогоднего DevConf Артем Дегтярь и Павел Степанец рассказали как они мигрировали ERP-систему написанную на «голом» PHP5.3, работающую на винде, в Symfony + PHP7, и построили на его основе облачный сервис в сфере b2b. Видео доступно по ссылке доклада. А я представлю текстовый, немного сжатый, вариант.


Мы работали над большой системой, которая позволяла создавать заявки и менять статусы, плюс биллинг, учет ТМЦ и много всего. Сегодня мы расскажем как рефакторили эту систему, мигрировали ее в Symfony. Первоначально система была написана на чистом PHP, и имела много «особенностей». Например, этот пятиуровневый тернарник на слайде весьма оригинально работал с датой, пришедшей от юзера.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments18

Как выглядит возврат авиабилетов со стороны агента

Reading time9 min
Views20K
Возврат билета на самолет сегодня — дело пары кликов. Если выбран возвратный тариф, то достаточно войти в личный кабинет на сайте продавца, нажать кнопку «вернуть билет» и дождаться возврата денег. Однако со стороны агента эта процедура выглядит куда сложнее.


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

Функциональное программирование с PHP-генераторами

Reading time7 min
Views16K


Генераторы классные. Они облегчают написание итераторов, определяя функции вместо создания целых классов, реализующих Iterator. Также генераторы помогают создавать ленивые списки (lazy list) и бесконечные потоки. Главное отличие функции-генератора от обычной функции в том, что обычная может возвращать только один раз (после этого её исполнение прекращается), а функция-генератор в ходе исполнения способна выдавать несколько значений. При этом в перерывах между возвратами исполнение генератора ставится на паузу до следующего запуска. Поэтому генераторы могут использоваться для создания списков с лениво генерируемыми значениями, то есть каждый элемент в списке вычисляется только в момент востребованности.

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

Система сбора данных на ESP. Часть I. CO2

Reading time5 min
Views48K
Доброго времени суток! В данной статье хочу рассказать о реализации устройств на модулях ESP. Тема похожих девайсов уже раскрыта в интернете, но не перестает быть актуальной.
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments161

Шпаргалка с командами Docker

Reading time5 min
Views659K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments15

Как я использую 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

30+ инструментов для профессиональной разработки приложений под Android

Reading time6 min
Views48K
image

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

Эти инструменты помогли мне сэкономить много драгоценного времени из моей повседневной жизни, а также помогли мне создавать более качественные приложения. Поэтому, не теряя времени, давайте познакомимся с новыми и потрясающими инструментами для профессиональной разработки приложений под Android.
Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity