Статьи

Статьи

Bootloop после обновления WhatsApp

Около двух недель у меня появлялось уведомление о доступности новой версии WhatsApp для операционной системы Android. Обычно я произвожу обновления приложений максимум через пару дней, а тут я, что то все его откладывал. Но когда количество уведомлений о выпуске новых версий для установленных у меня приложений превысило более десяти, я решил, что уже настало время наконец-то обновиться. Но во время обновления произошли две ошибки. Текст первой был следующий: Unfortunately, Trebuchet has stopped. Полученное уведомление о второй ошибке я сразу проигнорировал. В итоге после завершения всех обновлений я перешел на рабочий стол и увидел что он “пуст”. Попытка перезагрузки устройства завершилось его переходом в состояние bootloop. Спасти помогло смартфон то, что заранее была создана резервная копия данных (backup), которая в последствии и была использована для восстановления. Скорее всего, должен был помочь возврат к заводским настройкам (factory reset), но тогда пришлось бы настраивать смартфон заново. Читать далее

Особенность работы join в JavaScript

При работе с массивом в JavaScript мне пришлось столкнуться с неожиданным поведением работы метода join(). Неожиданным оно является из-за того, что в книгах, которые я читал по JavaScript, не было сказано о том, как JavaScript выводит массивы. Вернее что произойдет, если попытаться вывести в цикле for разряженный массив (индексация массива не является непрерывной). И только после того когда я увидел что произойдет сам, я начал находить примечания в документациях. Все дело в том, что в JavaScript вывод массива идёт от 0 до arr.length. Т.е. нет проверки на его разреженность как например в PHP. И вот сейчас, когда мы знаем об этой особенности вывода массивов, мы можем провести тест с методом join().

В документации по языку программирования JavaScript сказано, что метод join() объединяет все элементы массива (или массивоподобного объекта) в строку: Читать далее

Бесплатный SSL сертификат от StartCom

Необходимость в использовании SSL сертификата появилась у меня вследствие разработки дополнений для одной из CRM систем. Для их работы требовалось защищенное (HTTPS) соединение. Но идея о покупке сертификата казалась не очень впечатляющей, поскольку для тестирования разрабатываемых дополнений он нужен был ненадолго. Но, как выяснилось, существуют бесплатные SSL сертификаты (класса 1). И получить их можно у центра сертификации StartCom. Конечно же, бесплатный сертификат можно получить только для одного указанного домена, а не для группы поддоменов, но этого и не требовалось.

Так же следует обратить внимание то, что, к примеру, браузер Google Chrome может некорректно работать с авторизационным сертификатом (PKCS12) для доступа к панели управления центра StartCom. Однажды мне пришлось столкнуться с такой ситуацией, а также приходилось слышать подобное от коллег. Хотя в последнее время данных инцидентов замечено не было. Читать далее

Удаление дублей контактов в AmoCRM

Исходя из моих наблюдений, более половины пользователей AmoCRM заботятся о виде структуры их списка контактов. В основном их беспокоит наличие дублей. У пользователей, которые пользуются AmoCRM уже достаточно продолжительное время и поток их клиентов (как старых, так и новых) достаточно велик, то рано или поздно их список контактов начинает изобиловать дублями. Причем дублей становится так много, что настает пора подумать о том, как бы от этого всего изобилия начать избавляться. Дело в том, что AmoCRM не позволяет произвести удаление карточек клиента через API. А значит, придется разработать модуль, позволяющий производить удаление контактов не используя API AmoCRM. В качестве языка программирования был выбран PHP. Но для того чтобы приступить к удалению, контакты следует получить и разделить их на дубли и уникальные. Читать далее

Курьезный случай с root-доступом к mysql

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

После того когда все было перенесено на новый хостинг и уже прекрасно работало, мне звонят и уверяют что контент на сайтах вовсе не тот, который должен быть. У меня сразу промелькнула идея о случайной подмене некоторых бекапов или неверных настройках файла конфигурации CMS. Но проверка положительных результатов ни принесла. А поскольку контент был для владельца сайта очень важен, пришлось еще раз попытаться все же найти необходимые бекапы. Я связался с техподдержкой хостинга и объяснил им ситуацию. Они же в свою очередь высылают мне полный бекап хостинга. Но и там необходимых бекапов не оказалось. Читать далее

Верни мне карту, Amazon

Появилось однажды желание произвести небольшой шопинг на Amazon. После формирования списка необходимых товаров возникла необходимость в выборе посредника, для осуществления непосредственной их доставки. После недолгих раздумий решено было прибегнуть к услугам компании Бандеролька. После регистрации у Бандерольки мне был выделен персональный адрес для осуществления доставки товаров на территории США. После того как полученный мною адрес был добавлен в список адресов для доставки на Amazon, можно было переходить к уже непосредственной покупке отложенных мною товаров. Я, без всяких задних мыслей прохожу, все этапы покупки и ожидаю ее подтверждения. Но после завершения процесса покупки, в течении двух часов данные о статусе заказа так и не изменились. И соответственно деньги с карты тоже не списались. Сразу возникли подозрения что здесь, что то не то. В итоге я пытаюсь приобрести подарочную карту (gift card), что бы потом ею же и воспользоваться. Для этого я создаю операцию на пополнение лимита и начинаю ожидать ее завершения, но и в этом случае никакой реакции нет. Читать далее

Отключение модуля GSM в android

Пришло время протестировать в планшете работу модуля 3G. После вставки SIM-карты и произведения необходимых настроек – сеть заработала. И все бы хорошо, но появилось одно большое “но” – сильно увеличился расход батареи. Расход батареи от работы модуля 3G по статистике занимает второе место после экрана. Конечно же, меня такое положение дел не устраивало. Тем более что, большую часть времени для доступа в интернет можно было использовать Wi-Fi. Соответственно появилась задача модуль GSM отключить. И как оказалось в дальнейшем, все на самом деле довольно просто, но с небольшой хитростью.

А дело в том, что в ОС android есть замечательный режим – “режим полета”, при включении которого, отключаются Wi-Fi, Bluetooth, модуль GSM (если имеется) и многие другие функции. Многие включают, к примеру, тот же Wi-Fi, а уже в дальнейшем для его включения или отключения используют “режим полета”. Что зачастую бывает быстрым и удобным вариантом. Собственно все время поступал так и я. Читать далее

Работа с API почтового сервиса Mandrill

Mandrill это мощный почтовый сервис от MailChimp. Он является одним из самых удобных в использовании и настройке из семейства однотипных сервисов для отправки почтовых уведомлений. Этот сервис удобно использовать не только для рассылки неких писем коммерческого характера, но и обычных уведомлений с личного сайта. Так как электронные письма, отправляемые с личных сайтов, могут попадать в спам, то это будет еще одним плюсом в пользу решения о выборе услуг данного сервиса.

Для взаимодействия сервиса Mandrill с приложением, существует API с довольно широким спектром возможностей, с основными из них нам и предстоит, познакомиться. К тому же имеется возможность использования базового (бесплатного аккаунта) позволяющего производить рассылку до 12000 писем в месяц. Читать далее

Брешь в базовых шаблонах известных cms

За время моего ознакомления с некоторыми популярными CMS я заметил такую тенденцию, что в некоторых базовых шаблонах отсутствуют многие базовые настройки. Т.е. отключение таких параметров как: вывод даты публикации материала, вывод категории и т.д. может в итоге ни к чему не привести. Это я имею в виду именно популярные CMS, а не те, которые имеет довольно небольшую аудиторию разработчиков. Если честно, то это меня сильно удивило. Во-первых, их же разработчики как впрочем, и положено борются за конкурентоспособность. Во-вторых, эти самые CMS создаются с целью минимизировать трудозатраты конечного разработчика для создания сайта и в то же время не требовать от него неких специфических знаний. Читать далее

Подключение Asus Nexus 7 к Windows XP

В этой статье описывается процесс настройки Windows XP для возможности подключения к ней планшета Asus Google Nexus 7. Прошу обратить внимание на то, что все указанные шаги предпринимаются на чистой операционной системе. Поэтому если у вас Windows XP была установлена из некой сборки, то вам, возможно, некоторые предложенные действия придется пропустить.

Для того чтобы иметь возможность соединения планшета с ПК, потребуется включить у него “Режим отладки”. Этот пункт находится в разделе меню “Параметры разработчика”. Но дело в том, что разработчики ОС Android с версии 4.2 этот пункт убрали, вернее скрыли. И вот как нам его предлагают снова вернуть: Читать далее