User
5 JavaScript-библиотек для работы со строками
function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
if (+match === 0) re
turn ""; // или if (/\s+/.test(match)) для пробелов
return index === 0 ? match.toLowerCase() : match.toUpperCase();
});
}
Этот фрагмент кода, кстати, в роли ответа на вопрос о приведении строк к «верблюжьему» стилю, собрал больше всего голосов на Stack Overflow. Но даже он не в состоянии правильно обработать, например, такую строку:
---Foo---bAr---
Результат обработки строки ---Foo---bAr---
А как быть, если такие строки, всё же, нужно обрабатывать? Можно подправить этот пример, а можно прибегнуть к помощи специализированных библиотек. Они упрощают реализацию сложных алгоритмов и, кроме того, дают программисту инструменты, обладающие куда большей гибкостью и универсальностью, чем, скажем, вышеприведённый пример. Это вполне может означать, что для решения некоей непростой задачи понадобится вызвать всего один метод.
Поговорим о нескольких JavaScript-библиотеках, предназначенных для работы со строками.
Полная домашняя автоматизация в новостройке. Продолжение
1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня
Перед вами продолжение истории, где я отвечу на комментарии, приведу фотографии квартиры с мебелью, получившиеся электрические щиты, а также расскажу о тех сложностях, с которыми я столкнулся после того, как перешёл c openHAB в другую систему домашней автоматизации — Home Assistant.
Расчет прибыльности от «Зелёного тарифа» в 2020 г., Украина
КДВП — отражает положение дел в «Зелёной энергетике»
Пчеловоды против микроконтроллеров или о пользе ошибок
Одним из наиболее консервативных видов деятельности человека является пчеловодство!
С момента изобретения рамочного улья и медогонки ~200 лет назад, прогресс коснулся данной области лишь незначительно.
Это выразилось в электрификации некоторых процессов выкачки(извлечения) меда да использование зимнего подогрева ульев.
Между тем, популяция пчел в мире сильно уменьшается — в силу изменения климата, широкого использования химии в сельском хозяйстве и того, что мы до сих пор не знаем чего-же хотят пчелы?
Мои пропали по первой причине, и это сильно поменяло изначальную концепцию "умного улья"
На самом деле, проблема существующих в данной области проектов как раз и заключается в том, что люди их создающие не являются пчеловодами, а последние в свою очередь далеки от инженерных наук.
Ну и конечно-же вопрос цены — стоимость пчелиной семьи примерно равна стоимости простого улья и цене меда, производимой ими за сезон(год).
А теперь возьмите цену какого-то из взлетающих проектов и умножьте на количество ульев на коммерческой пасеке (от 100 и выше).
В общем, кому интересны пятничные размышления гика-пчеловода, прошу под кат!
Опыт 2 миллионов headless-сессий
Рады сообщить, что недавно мы преодолели рубеж в два миллиона обслуженных сессий! Это миллионы сгенерированных скриншотов, напечатанных PDF и протестированных сайтов. Мы сделали почти всё, что вы можете придумать делать с headless-браузером.
Хотя приятно достичь такой вехи, но на пути оказалось явно много накладок и проблем. В связи с огромным объёмом полученного трафика хотелось бы сделать шаг назад и изложить общие рекомендации для запуска headless-браузеров (и puppeteer) в продакшне.
Вот некоторые советы.
Актуальная ОС для старого ПК или нетбука
Наверняка у многих из Вас пылится где-нибудь старенький комп/ноут/нетбук, который апгрейдить уже дальше некуда, продать невозможно, а выкинуть жалко. Действительно, не стоит с этим спешить, ведь он вполне может кому-нибудь пригодиться. Возможно даже Вам.
Пока я обдумывал что делать со своим старьём (а завалялись у меня Samsung NC10 и Asus U5F) попался мне на просторах сети вот такой текст. Разумеющим английский мысль, надеюсь, ясна. А для остальных, вполне очевидная идея заключается в том, чтобы заменить на старом ПК операционную систему на менее требовательную, но при этом вполне актуальную. Затем такой компьютер можно отдать детям для простеньких игрушек, бабушке для скайпа, маме для web-серфинга или даже использовать самому.
DLNA-сервер для дома и семьи
И вот, я вооружившись ссылкой с Википедии Как выбрать DLNA-сервер под Windows, Mac OS X или Linux — опробовал почти всё, что есть под Linux.
Операционные системы Linux под разные задачи
Здесь собран регулярно обновляемый список операционных систем Linux, оптимально подходящий под конкретные потребности и требования проекта. Материал — адаптивный перевод статьи Christian Cawley The Best Linux Operating Systems.
Консоль разработчика Google Chrome: десять неочевидных полезностей
На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
IoT за копейки, или Что может DeviceHive
Сделать свой дом поистине «умным» можно и без использования модных Raspberry Pi или Arduino. Большинство IoT-задач сводится к подключению типовых датчиков и исполнительных механизмов со стандартными интерфейсами: I2C, SPI, UART. А иногда даже с элементарным аналоговым выводом, с которого нужно считать наличие напряжения или подать его, или просто замкнуть.
Простые опыты с ребенком дома
Пример очень неудачного опыта, пояснение в разделе “о технике безопасности”
К моему предыдущему посту было множество комментариев по части экспериментов с детьми. Тогда я пообещал написать отдельный пост о простых увлекательных опытах. Сейчас я это обещание выполняю. Данная статья будет вводной, в ней я расскажу только о самых популярных и известных экспериментах которые легко выполнить дома с ребенком.
Что писать в карточках, если товары одинаковые?
Привет! Я продолжаю рассказывать про буквы в блоге Михаила, владельца Текстброкера.
Предположим, у вас есть интернет-магазин, а у него внутри – карточки товаров. И товары бывают двух тяжелых категорий:
- Те, у которых дофига неуникального текста (например, теххарактеристики телефонов, инструкции медицинских препаратов), и непонятно, как быть с SEO.
- Те, которые имеют артикулы ####0001, ####0002, ####0003… ####0050 и так далее, то есть отличаются какими-то совершенно нереальными мелочами вроде цвета. Пример – 180 моделей очаровательных трусиков. К сожалению, очаровательны они для райтера только первые десять раз.
Давайте посмотрим, что делать.
Сравнение Yii с CodeIgniter
Думаю, на данный момент я достаточно распробовал Yii, чтобы адекватно сравнить
два замечательных фреймворка.
Lego WeDo — робототехника для самых маленьких
Но как подготовить подрастающее поколение к этим изменениям, выработать у них правильное отношение к проблеме, ознакомить с принципами и правилами функционирования роботов?
Кружок по программированию для школьников
Я хочу вам рассказать о том, как я организовал бесплатный кружок по программированию для детей в одной московской школе. Возможно, мой опыт будет полезным желающим заняться чем-то подобным, а ваши комметарии будут полезны мне сделать кружок лучше.
Где-то пол года назад я загорелся желанием открыть свой кружок по программированию для детей. Решил, что было бы замечательно набрать группу детей и обучить их полезному языку программирования и познакомить с основными технологиями, которые применяются совместно с программированием и смогут пригодиться в реальной жизни, например, работа с HTTP и базы данных.
Из опыта создания кружка программирования для детей
Появление кружка
Предыстория этого кружка началась два года назад. К тому времени я уже несколько лет подрабатывал репетитором информатики и программирования, в основном ученики по информатике программировали на Pascal, он больше распространен в школах.
А осенью 2011 года у меня появился необычный ученик: ребенок в 4 классе очень хотел заниматься программированием, и узнав что я обучаю Delphi мы с его мамой договорились что попробуем обучить на нём. Ребенок оказался очень одарённым, и у нас получилось очень хорошие и плодотворные занятия. И многие идеи появились только благодаря его постоянному интересу к программированию.
К тому времени я работал в кружке робототехники Дворца Молодёжи Свердловской области. И у меня появилась мысль организовать такой кружок программирования у нас. Для создания этого кружка прежде всего надо было определить несколько вещей:
- на какой возраст рассчитываем. Дело в том что я много изучал психологию (закончил психфак УрГПУ), и знаю что логическое мышление начинает развиваться (и наиболее хорошо развивается) начиная с младшего подросткового возраста. И занятия программированием будут в плане развития наиболее ценны для подростков. Это прежде всего это развитие способности держать в голове большие объёмы информации, и выстроенные между ними логические связи. Итак возраст был определён минимум от 11 лет и старше (рекомендуемый возраст 13-15 лет);
- цели обучения программированию (особенно учитывая возраст детей). Первая цель как написано выше — развивающая. Вторая цель — заинтересовать, приобщить детей к этому занятию. Именно поэтому (да простят меня сторонники традиционного обучения, требующие сначала обучать на обычном языке, а потом уже на объектно-ориентированном) было четкое понимание, что именно программы с графическим интерфейсом будут интересны детям. Итак мы переходим к третьему аспекту:
- в какой среде программируем. В качестве такой среды был выбран Lazarus. Во-первых синтаксис Pascal куда проще для детей, поэтому я решил отказаться от того же С#. От Delphi пришлось отказаться, потому что учреждение областного уровня не может позволить поставить пиратский софт, а на покупку софта для нового кружка скорее всего денег бы не нашлось. Поэтому был выбран бесплатный Lazarus
Composer — менеджер зависимостей для PHP
Кратко, как это работает:
- У вас есть проект, который зависит от нескольких библиотек.
- Некоторые из этих библиотек зависят от других библиотек.
- Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
- Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.
При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.
Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano, сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github.
Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2). Список проектов использующих Composer можно посмотреть на сайте packagist.org — это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.
В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.
Yeoman для новичков
Есть такие программы и утилиты, воспользовавшись которыми, пользователь возопит: «Не знаю, как я мог жить без этого инструмента раньше!». На мой взгляд, консольная утилита Yeoman, написанная на Node.JS, относится как раз к разряду таких незаменимых инструментов. Почему?
Обзор сервисов отсылки мобильных push-уведомлений
Мне понравилась концепция центра уведомлений, которая успешно показала себя на ОС Android, появилась в iOS6 и запланирована к выпуску в Windows Phone. Это одна лента уведомлений для всех сервисов, удобный просмотр, работа с уведомлениями, простая очистка списка. На своем опыте убедился, что это в разы удобнее, чем привычные email уведомления, которые превращают inbox в кашу.
Поскольку наша команда работает одновременно над несколькими проектами (где-то летят “билды”, где-то пушатся изменения и так далее), мне показалась интересной идея подключить свои проекты к такому варианту уведомлений о событиях, происходящих в системе. В идеале я хотел иметь возможность рассылать уведомления разным членам команды, а при необходимости и на всю команду целиком. Только мне хотелось получать их именно от ПО, с которым я работаю — начиная от инструментов Continuous Integration и автоматического тестирования, и заканчивая непосредственно логами ошибок, статистикой и критикалами из проектов.
Information
- Rating
- Does not participate
- Registered
- Activity