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

Energynet

Время на прочтение4 мин
Количество просмотров546
Хочу поделится содержимым доклада, на который наткнулся в сети. Есть такой человек — Juval Lowy. Основатель Idesign, автор нескольких книг, региональный директор Microsoft в Silicon Valley. На Teched 2009 он выступил с докладом несколько нехарактерным для формата данного мероприятия. В нем Джувал предсказывает, что следующий IT бум произойдет очень скоро и будет связан с развитием рынка альтернативной энергии. Джувал аргументирует свою позицию и дает рекомендации разработчикам как подготовится к буму.

Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии10

Создаём королевскую форму для приёма банковских карт

Время на прочтение8 мин
Количество просмотров18K


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


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


Для создания формы мы будем использовать следующие инструменты:


  1. Нативный JS
  2. BinKing — вспомогательный сервис для создания платёжных форм: https://github.com/sdandteam/binking
  3. IMask — инструмент для создания масок полей ввода: https://imask.js.org/
  4. Tippy — инструмент для создания тултипов: https://atomiks.github.io/tippyjs/

Читать дальше →
Всего голосов 16: ↑6 и ↓10-4
Комментарии22

Как улучшить DJI Spark на 7%

Время на прочтение5 мин
Количество просмотров10K

Друзья, всем привет!

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

Полетели!
Всего голосов 34: ↑34 и ↓0+34
Комментарии73

Сжатие и передача потокового видео по TCP с помощью OpenCV

Время на прочтение3 мин
Количество просмотров15K
По работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.

Задача заключалась в следующем:

1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии12

Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 1)

Время на прочтение14 мин
Количество просмотров19K

Что делать, если сайт на WordPress грузится медленно? Ответ на самом деле прост – настрой кеширование. Можно ещё заниматься оптимизацией изображений, настройкой lazy loading и прочими хитростями. Но кеширование всё равно остаётся ключевым способом ускорения любого сайта на Вордпресс. Кажется, всё просто, зайди в Google, напиши "WordPress cache", найди статью, где больше всего картинок, скачай упомянутый в статье плагин и выстави настройки согласно скриншотам. При любом раскладе твой сайт сразу начнет работать в разы быстрей.

Но дьявол, как обычно, кроется в деталях. В интернете есть самые разные обзоры и сравнения плагинов кеширования. И за столько лет кто-то же должен был выдать идеальный рецепт? Но нет. Все эти обзоры сводятся к тезису: «мы сделали 10 одинаковых сайтов, установили плагины с дефолтными настройками и смотрим, где страница загрузилась быстрее». При этом все забывают, что нюансов при оптимизации кеширования вагон и маленькая тележка. Похоже, эта статья первая, которая примет во внимание реальное поведение пользователей на сайте, вместо сравнения скорости загрузки одной страницы в тепличных условиях.

Используя бестселлеры с Themeforest или, те же конструкторы, вроде Elementor, WP Backery и прочие, сайт обречен на 5-15 секунд TTFB (time for first byte, время ответа сайта) при загрузке КАЖДОЙ страницы. С одной страницы может быть несколько сотен обращений к базе данных, выполняться большое число php-функций, подключаться множество библиотек. Естественно, что такая скорость недопустима, она влечет за собой понижение в поисковой выдаче, "отказы" посетителей, сливы бюджетов на рекламу и так далее. С этим нужно что-то делать.

Читать далее
Всего голосов 17: ↑15 и ↓2+13
Комментарии7

Шлюз для почтового сервера

Время на прочтение7 мин
Количество просмотров37K
Не так давно посчастливилось сменить место работы. Попал в компанию, которая, в принципе, заслуживает отдельной статьи по ряду причин и, возможно, появится здесь позже. Если совсем вкратце о структуре нашего отдела: заниматься чем-то, кроме своей основной деятельности, не возбраняется, так что взор мой упал на наш почтовый сервер, доставляющий много хлопот.

У компании имеются удаленные партнерские филиалы, равномерно распределенные по всей Западной Европе, использующие один почтовый сервер. К сожалению, бюджет IT-отдела не очень большой, а пользователей достаточно много (около 700 почтовых аккаунтов). Использовался, да и сейчас используется для почты Exchange 2010 с последними обновлениями и более-менее настроенными правилами фильтрации спама, а вот с антивирусом как-то не заладилось. Купленное решение отказывалось нормально работать, раздувая очередь входящей корреспонденции до неприличных размеров и вешая намертво всю почту. (Да, я знаю, что все best practice говорят о необходимости и edge-сервера, и отдельно сервера архивации, но что было на тот момент, то и было.)

Берем инициативу в свои руки. К большому своему удивлению, найти развернутый мануал по решению такой проблемы сходу не удалось, так что возникла идея поделиться своими пробами и ошибками в рунете.
Читать дальше
Всего голосов 13: ↑12 и ↓1+11
Комментарии24

Управляем освещением в квартире (NooLite, Raspberry Pi и WebIOPi)

Время на прочтение35 мин
Количество просмотров29K
Хочу поделиться опытом использования системы для умного дома NooLite совместно с Raspberry Pi Model B (далее RPI) в двухкомнатной квартире.
О системе NooLite неоднократно писали на хабре:

В данной статье я расскажу:
  • об установке и настройке WebIOPi на предустановленную Raspbian в контексте использования UART для передачи команд на модуль MT1132 NooLite
  • о макросах в фреймворке WebIOPi для связывания запросов в стиле HTTP REST с GPIO UART
  • о написании простого клиента на платформе Android для управления светом через REST дырки

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Deprecated! Автоматизация получения сведений из ЕГРЮЛ с помощью Freepascal

Время на прочтение9 мин
Количество просмотров10K


В своей работе (юридической) я готов автоматизировать всё, что только поддаётся этому. Но пока прокачанные нейросетями роботы из утопии Германа Грефа не появились и не отняли всю работу у рядовых юристов, рутина надолго останется нашим главным спутником. Автоматизация этой рутины — то, чем я периодически занимаюсь на протяжении последних лет, будь то многочисленные таблицы в excel с кучей формул, позволяющих быстро распечатать сотню однотипных документов-рассылок в word'е, ну или автоматически генерируемые отчеты. Но есть и такие вещи, которые простыми формулами и подстановками не сделаешь. Здесь на помощь приходит программирование, которым я увлекаюсь с детства, и так уж вышло, что началось это с delphi. Сейчас мне проще, чем в C# или python, осваивать которые начал недавно, сделать быстро какой-то проект в среде Lazarus, используя freepascal. И да, я на полном серьёзе считаю, что возможностей этой среды более, чем достаточно. Поэтому автоматизировать ЕГРЮЛ, как вы догадались, предстоит с помощью паскаля.

Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии15

Комментировать или не комментировать?

Время на прочтение10 мин
Количество просмотров71K
По-настоящему хороший комментарий — тот,
без которого вам удалось обойтись.
Дядюшка Боб


В последнее время меня стали очень утомлять оживлённые дебаты о том, нужно ли комментировать код. Как правило, по одну сторону баррикад — самоуверенные джуниоры, имеющие непререкаемую позицию вида «А как же его не комментировать, ведь без комментариев непонятно будет!». По другую — умудрённые опытом сеньоры. Они понимают, что если возможно обойтись без комментариев, то «Лучше бы, чёрт возьми, так и сделать!». Наверное, у многих жажда комментировать идёт со студенческой скамьи, когда товарищи преподаватели заставляли комментировать каждую строчку, «чтобы студент лучше разобрался». В реальном проекте не должно быть кучи комментариев, которые только и делают, что засоряют код. Впрочем, я не агитирую вообще не писать комментарии, но если вам удалось написать такой код, который не требует пояснений, то расценивайте это, как свою маленькую победу. Сразу хотелось бы сослаться на нескольких очень умных книжек, на основе которых формировалась моя позиция. Я люблю и уважаю авторов этих работ, полностью разделяя их мнение.
Читать дальше →
Всего голосов 181: ↑149 и ↓32+117
Комментарии243

SmartCard I2C Protocol. Обмен APDU командами через I2C интерфейс

Время на прочтение13 мин
Количество просмотров6.1K

Введение


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

К сожалению, тогда подобное решение не подошло по некоторым причинам, хотя если бы удалось использовать уже готовую российскую аппаратную криптографию, то это должно было значительно ускорить разработку и последующую сертификацию конечного изделия. А причины невозможности использования USB токенов или смарткарты были весьма банальны: устройство должно было быть довольно компактным (небольшой модуль для M2M или IoT устройств), эксплуатироваться преимущественно в необслуживаемом режиме и работать в широком температурном диапазоне.

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


Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Главное здание МГУ в Wikipedia

Время на прочтение1 мин
Количество просмотров916
Вот такую штуку прислали совершенно недавно. Я понимаю, что юмор людей не имеет границ, но как-то странно это выглядит и не очень смешно, как мне показалось.

Начинаем читать с Истории строительства…

ru.wikipedia.org/w/index.php?title=%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5_%D0%9C%D0%93%D0%A3&oldid=4224409
Всего голосов 2: ↑1 и ↓10
Комментарии1

Практические аспекты использования DHCP relay+option82

Время на прочтение5 мин
Количество просмотров55K
В этой статье я хотел бы осветить практические аспекты использования DHCP relay+option82 как возможность авторизации (в дальнейшем именно эта связка будет иметься ввиду), а так же привести примеры конфигурации свитча Dlink DES-3200-10 и isc-dhcp-server. Практически во всех статьях dhcp relay трактуют так: «можно вынести dhcp-сервер за пределы широковещательного домена». Однако почему-то не упоминают или почти не упоминают, что это хорошая возможность избавиться от широковешательных запросов в пределах того же самого широковешательного домена. И самое главное, на что акцентирую внимание — мы можем быть уверены, благодаря option82, что запрос пришёл именно со свитча с заданным маком и именно с порта с указанным номером, а следовательно — таким образом можно «авторизовать» пользователя.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии49

Базовые подходы к парсингу

Время на прочтение4 мин
Количество просмотров31K

Вступление

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

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

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

Можем ли мы спарсить?

Да, к сожалению (или счастью) веб - он не однообразен, и каждый ресурс может быть уникален по своему, но в нашем деле, ключевым моментом будет то, есть ли на этом ресурсе Server-Side Rendering (SSR), или там Client-Side Rendering и важная для нас информация подтягивается позже с помощью JS.

К примеру, нативные апки на React или тот же Angular by default есть CSR. И что бы прикрутить там SSR нужно порой очень сильно попотеть.Тем не менее, большинство сайтов с топ серч результатов любой поисковой системы будут поддерживать именно SSR, потому что таков мир SEO-оптимизаций.

Читать далее
Всего голосов 26: ↑17 и ↓9+8
Комментарии32

Флейты, программист и производство

Время на прочтение7 мин
Количество просмотров12K

Я запустил производство флейт Пана "Arra Lazur" и продолжаю его развивать по настоящее время.

Удалось достигнуть определенных успехов и я хочу поделиться ими, а также результатами проделанных экспериментов. И ответить на ряд вопросов:

Чем плохи существующие подходы к изготовлению?

При чем тут программирование?

Как удалось автоматизировать процесс производства?

С какими трудностями столкнулся?

Читать далее
Всего голосов 77: ↑77 и ↓0+77
Комментарии43

Ускорение WordPress. Тотальный разбор плагинов для кэширования. Личный опыт (часть 2)

Время на прочтение18 мин
Количество просмотров25K

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

Читать далее
Всего голосов 6: ↑3 и ↓30
Комментарии32

Роботрон. Как восстановить клавиатуру из 1987г. для чайников

Время на прочтение13 мин
Количество просмотров13K

Очень давно на Хабре мною была прочитана статья о механических клавиатурах, свичах их разновидностях и всём таком. Естественно мне захотелось причаститься к секте кнопкопоклонников и сделать свою также для себя же. Но вместе с тем я не хотел кидаться с места в карьер неизведанных знаний (да и куча других незавершённых проектов давила на совесть) и решил потренироваться сначала «на кошечках». Желание засело в мозгу, запрос был сформирован, отослан в ноосферу и осталось только ждать.

И вот однажды «кошечки» ко мне постучались сами…
Читать дальше →
Всего голосов 95: ↑95 и ↓0+95
Комментарии70

Дамп разделов TV-бокса на чипе RK3528

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров15K

Заметил в продаже новенький TV-бокс H96 MAX M1 на чипсете Rockchip RK3528, с 4Гб памяти, новым 13-м Андроидом, и подозрительно дешевый. Зная, что на старых чипах Rockchip уже запускали Линукс, я решил заказать и попробовать.

Можете заметить разъёмы питания/USB/HDMI/AV... Как думаете, в чём подвох? Наверное на другом боку еще пара USB и слот для карты памяти, но нет - других разъёмов для вас нет. Сразу напишу - разработчикам такое покупать не стоит, это создаёт много проблем, но раз уж купил - то работаю с чем есть.

Для запуска Линукс первым делом надо получить оригинальный Device Tree, вытащив .dtb из boot или recovery раздела. Этим я и занялся. Rockchip устройств у меня еще не было и по отзывам у меня складывалось ощущение производителя, что не ставит палки в колёса разработчикам, но оказалось - это уже в прошлом.

Инструкции написаны для пользователей Линукс.

Читать далее
Всего голосов 60: ↑60 и ↓0+60
Комментарии31

Об этимологии логотипа Хабрахабра / On ethimology of Habrahabr's logo

Время на прочтение3 мин
Количество просмотров1.2K
Недавно вспомнил фразу — Самые очевидные вещи содержат невероятные идеи.
Ну и вот, вспоминая тесты Роршаха, в сознании родился след. мысленный ряд:

1. Шаб-Ниггурат

Материал из Википедии — свободной энциклопедии
ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1-%D0%9D%D0%B8%D0%B3%D0%B3%D1%83%D1%80%D0%B0%D1%82



Шаб-Ниггурат (англ. Shub-Niggurath), также Чёрный Козерог Лесов с Тысячным Потомством (иначе Чёрный Козёл Лесов с Тысячью Младых) — богиня плодородия, персонаж мифического пантеона (см. Мифы Ктулху), выдуманного Говардом Лавкрафтом. Впервые упоминается в его рассказе «Последнее испытание» («The Last Test», 1928). У самого Лавкрафта ни разу не описывается, в отличие от его продолжателей, но неоднократно поминается
в заклинаниях и воззваниях.

Шаб-Ниггурат описывается как туманная, облакоподобная масса cо множеством длинных, чёрных щупалец, роняющими слизь ртами и короткими козлиными ногами. Её сопровождают множество порождённых ею мелких монстрообразных существ, которых она постоянно извергает из себя, а затем снова пожирает и переваривает.

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

Проведя должным образом обряд, можно вызвать Шаб-Ниггурат в любом лесу в новолуние.

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

Заключение: вот мы кто, Хабралюди! (мелкие монстрообразныe существа)

2. Flying Spaghetti Monster (за минусом фрикаделек)

From Wikipedia, the free encyclopedia
en.wikipedia.org/wiki/Flying_spaghetti_monster

Машинный перевод:
www.google.com/translate?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FFlying_spaghetti_monster&langpair=en%7Cru&hl=uk&ie=UTF8

Flying Spaghetti Monster — это божество в религии пародия называется Церковь Flying Spaghetti Monster. [1] The religion was founded in 2005 by Oregon State University physics graduate Bobby Henderson to protest against the decision by the Kansas State Board of Education to require the teaching of intelligent design as an alternative to biological evolution .[1] религия была основана в 2005 году, Oregon State University физике выпускников Бобби Хендерсон протеста против Решение Канзас штата по вопросам образования требовать преподавания умный проект в качестве альтернативы биологической эволюции. In an open letter sent to the education board, Henderson professes belief in a supernatural Creator called the Flying Spaghetti Monster, which resembles spaghetti and meatballs.В открытом письме, направленном управлением образования, Хендерсон исповедует веру в сверхъестественное Организатор называется Flying Spaghetti Monster, напоминающая спагетти и meatballs. [2] He furthermore calls for the «Pastafarian» theory of creation to be taught in science classrooms.[2] Кроме того, он призывает к «Pastafarian» теории творения, которые будут преподаваться в учебных науки. [3] Followers of the Flying Spaghetti Monster (FSM) call themselves Pastafarians, a portmanteau of pasta and Rastafarian .[3] Последователи Flying Spaghetti Monster (ФСМ) называют себя Pastafarians, обобщающим пасты и растафарианство.

Because of its recent popularity and media exposure, the Flying Spaghetti Monster is used by atheists and agnostics (known by Pastafarians as «spagnostic») as a modern version of Russell's teapot.Благодаря своей популярности и недавно в средствах массовой информации, Flying Spaghetti Monster используется атеистов и агностиков (известных как Pastafarians «spagnostic») в современной версии Рассел в чайник.

Заключение: а это — идеи еретиков!

Вывод: тысячи Ми-го не могут ошибаться! ru.wikipedia.org/wiki/%D0%9C%D0%B8-%D0%B3%D0%BE

Iä! Shub-Niggurath!
Рейтинг0
Комментарии0