Как исправить проблему с установкой viber в kubuntu 18.04

В новой версии kubuntu 18.04 используется libcurl4, а в зависимостях viber 3-я версия. Соответственно при установке viber просит установить старую версию и сносит новую libcurl4 и софт зависящий от неё. Лучший известный мне способ исправить данную проблему — пересобрать пакет. sudo su # переходим в режим root dpkg-deb -x viber.deb viber # распаковываем пакет скачанный с сайта viber dpkg-deb —control viber.deb viber/DEBIAN nano /DEBIAN/control # заменяем libcurl3 на libcurl4 dpkg -b viber vibernew.deb # перепаковываем и устанавливаем dpkg -i vibernew.deb И всё работает. Печалит то, что современные приоритеты месенджеров кроются в продажах стикеров и информации, а вот потратить пару человекочасов на нормальный способ дистрибуции — жалко.

Читать далее »

Рефакторинг блога.

Бложек немного приболел, дроплет на DO полетел, унеся с собой блог. Занимаюсь сейчас ремонтом и восстановлением из бэкапа. А заодно надо почистить лютый треш из стрых записей. А то многие статьи самому страшно перечитывать и хочется поломать руки тому говнокодеру…

Читать далее »

Недостатки laravel

Я очень люблю фреймворк laravel, пользуюсь им начиная с 3-й версии, тогда он был как глоток свежего воздуха на фоне zend и symfony. Уважаю Тейлора за проделанную работу, за принесённую в php фреймворки идею удобного апи и умение копировать лучшее из других фреймворков вроде RoR. О плюсах сказано уже много, но у него есть свои недостатки. Эти недостатки не фатальны, а некоторые и вовсе мои личные привычки, которые другим покажутся надуманными. Всё дерьмо вылитое ниже не сильно влияет на мою оценку laravel, который считаю лучшим фреймворком в мире PHP. И спасибо @kotchuprik и его статье, который подтолкнул высказаться и дал некоторые идеи.

Читать далее »

Проблемы с обновлением ubuntu

Недавно на kubuntu 14.10 столкнулся с проблемой при обновлении Ош http://by.archive.ubuntu.com utopic-backports/main Sources 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/restricted Sources 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/universe Sources 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/multiverse Sources 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/main i386 Packages 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/universe i386 Packages 404 Not Found Ош http://by.archive.ubuntu.com utopic-backports/multiverse i386 Packages 404 Not Found В кэше http://by.archive.ubuntu.com utopic-backports/main Translation-en В кэше http://by.archive.ubuntu.com utopic/restricted Translation-ru Долго не мог найти решение, но всё же нарыл в очередной заход sudo -i apt-get clean cd /var/lib/apt mv lists lists.old mkdir -p lists/partial apt-get clean apt-get update Спасибо автору коммента Mete.

Читать далее »

Continuous Integration, delivery, deployment

Данный пост противопоказан и может оскорблять чувства верующих в церковь Мартина Фаулера, так как является довольно вольной трактовкой, но обтесанной годами моей практики. Сидит программист, пишет свой код, думает о пиве и здесь появляется другой программист, с ним тестировщик и, прости Господи, проектный менеджер. Здесь уже не до пива, код больше нельзя править на сервере через удалённый доступ. Приходится разворачивать git, лепить ветки, создавать билды и гонять тесты и в дело вступает супергерой Continuous. Последнее время принято мешать три шага Continuous в одну кучу, хотя эти шаги сильно отличаются по целям и подходам. Эти шаги — Continuous Integration, Continuous Delivery и Continuous Deployment.

Читать далее »

Модули в angularjs

Поговорим о повторно используемом коде. Чтобы код повторно использовать его нужно оформлять особым способом и выносить в пакеты. Сейчас все нормальные фреймворки в разных языках программирования имеют поддержку пакетов и пакетные менеджеры для управления ими, а так же для решения проблем с версиями и зависимостями. В javascript для управления пакетами применяется bower. Теперь же рассмотрим как писать код, чтобы его можно было внедрять в проекты, в качестве препарируемого будет angularjs. Angularjs поддерживает модули, будем использовать именно их. Для примера можно разворатить пару готовых, я же постараюсь описать найденное мною. Модуль является контейнер в который мы можем складывать константы, переменные, контроллеры, сервисы и т.д., далее мы просто подключаем js файл и при создании модуля приложений добавляем свой модуль в зависимости.

Читать далее »

Итоги 2014

В 2014 году в блоге не появилось ни одной новой записи, но помню про него, копится материал, появилась парочка черновиков и в 2015 обязательно разрожусь целым циклом постов. Год получился отличным, есть о чём рассказать. Помимо написания кода, активно начал заниматься обучением: появилась стажёрская программа, организуем воркшопы внутри компании, готовим небольшой хакатон, провел тьму собеседований. Приятно наблюдать как это всё приносит результаты, да ещё быстрее чем планировалось. Огромное спасибо за это HR и просто отличному человеку Ольге Бобко, которая дала возможность и подталкивает в этом направлении. А вот за код мне стыдно, он становится всё более пахнущим, работа в команде и бизнес требования уводят всё дальше от мечты перфекциониста. Помимо веб проектов поучавствовал в разработке приложения для телевизионной приставки и магазинного терминала, php и javascript открывают все больше граней и сфер применения, что не может не радовать. Осваиваю разработку под windows phone, С# отличный язык, но WinJS всё же привычнее. С наступающим Новым годом! Желаю всем отличных проектов, чтобы о коде и паттернах думалось меньше, чем об отдыхе, пейте пиво, играйте в футбол, любите жизнь.

Читать далее »

Continuous integration с Jenkins

Continuous integration или непрерывная интеграция — это практика создания  автоматизированной сборки проекта. Хотя это и звучит как-то заковыристо, но это то, что программист делает ежедневно. Мы пишем код и проверяем его на синтаксические ошибки, на соответствие стилю кодирования, прогоняем тесты, боремся с copy-past и тд. и т.п. В PHP существует масса инструментов. позволяющих это автоматизировать, в PEAR есть пакет phpqatools, который ставит сразу пачку таких утилит. Но прогонять их руками неудобно, к тому же хочется иметь какой-то графический интерфейс, чтобы просматривать отчёты, чтобы наблюдать как изменяется проект, иметь возможность смотреть на старые версии и т.д. Здесь на помощь приходит Jenkins.

Читать далее »

ORDER BY FIELD в Laravel

Есть замечательная SQL конструкция, позволяющая задавать свой порядок сортировки для ORDER BY. Сегодня мне понадобилось использовать ORDER BY FIELD(priority, 2,1,3), ситуация осложнялась тем, что используется ORM от Laravel и его Query Builder экранирует то. что передано через ->orderBy. Решение же оказалось очень простым, нужно использовать raw \Model::orderBy( \DB::raw(‘FIELD(status, 2, 1, 3)’) );

Читать далее »

Laravel-4

Последнее время меня пугают некоторые тенденции для библиотек в PHP, вместо простого и быстрой разработки мы получаем JAVA. Сейчас много php фреймворков и я их делю на две основные категории: 1. Монстры с большой гибкостью и возможностью менять любой компонент. Они отлично подходят для кровавого энтерпрайза. В этой категории два лидера Symfony 2 и Zend Framework 2, хотя последний у меня вызывает скепсис, слишком уж сырой он появился на свет. 2. Фреймворки для быстрой разработки, они менее архитектурно красивы, зато не требуют писать такую кучу кода. Среди них следует отметить широко известные Yii и Kohana. Есть ещё микрофреймворки, php расширения, pear и т.д., но как правило они лучше подходят в качестве отдельных компонент или на очень уж простые проекты. Я же решил рассказать о Laravel, буквально вчера появилась 4-я версия этого прекрасного фреймворка из категории 2. О нём пока мало известно, хотя 3-я версия была очень хороша и имела систему бандлов. Чего в полной мере не было у конкурентов.

Читать далее »