• Почему мы рады тому, что не попали на themeforest

      Наша команда начала работать над Admin Dashboard Template (мы называем её просто админка) для themeforest 9 месяцев назад. Забегая вперед, на этот маркетплейс мы так и не попали, но сильно не расстроились и сегодня рады поделиться с сообществом результатами нашей кропотливой работы и, надеемся, интересной и полезной историей.

      Ссылки для нетерпеливых:

      angular 1 версия: https://github.com/akveo/blur-admin (демо: blur, mint)
      angular 2 версия: https://github.com/akveo/ng2-admin (демо)

      Будем рады любым комментариям, замечаниям и пожеланиям.
      Надеемся, что BlurAdmin вам понравится, и, если сообщество сочтет этот проект полезным, мы с удовольствием продолжим его поддерживать и прикручивать новые фичи.

      Читать дальше →
    • Чем PostgreSQL лучше других SQL баз данных с открытым исходным кодом. Часть 1

      • Translation
      Сегодня давайте поговорим о преимуществах Postgres перед другими системами с открытым кодом. Эту тему мы обязательно раскроем более подробно на PG Day'16 Russia, до которой осталось всего два месяца.

      Возможно, вы спрашиваете себя: «Почему PostgreSQL?» Ведь есть и другие варианты реляционных баз данных с открытым исходным кодом (в рамках этой статьи мы рассматривали MySQL, MariaDB и Firebird), так что же Постгрес может предложить такого, чего нет у них? В слогане PostgreSQL заявляется, что это «Самая продвинутая база данных с открытым исходным кодом в мире». Мы приведем несколько причин, почему Постгрес делает такие заявления.

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


      Читать дальше →
    • Как стать фрилансером

        Формирование виртуальной личности

        Сетевая жизнь ничем не отличается от реальной. Врать или не врать это ваше личное дело. Но несколько простых правил негативно влияющих на ваш заработок стоит запомнить:
        • вам нет 18. Стереотип безответственной школоты ничем не уничтожить
        • вконтакте вас зовут Вася, на бирже Петя, а вебмани будет выдавать, что вы Маша. Мало кто задумывается в самом начале пути о своём виртуальном профиле, а зря, потом уже ничего не изменить. Подумайте не только о достоверности вводимых данных, но и о их «чистоте». Если юзер под вашим ником будет на форуме phpclub-а просить научить его программировать, то будьте готовы к внезапно потерянным клиентам.
        • дайте будущему заказчику максимум информации о себе: телефон, скайп, аська, номера кошельков и счетов.
        • уделите внимание социальным сетям. Ни что так не компрометирует исполнителя, как страничка вконтакте содержащая мат, падонские выражения и т д
        • поставьте себя на место заказчика и проверьте на чистоту и логичность всю эту информацию через поисковые системы
        • старайтесь писать без ошибок и опечаток. Про матершину в общении с заказчиком думаю даже говорить не стоит.

        Привыкайте жить в новую эпоху…
        Читать дальше →
      • Низкий FPS при прокрутке страницы. Решение проблемы background-attachment: fixed

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

          body{
          	background: url("../images/bg.jpg") no-repeat center center / cover fixed;
          }
          


          и довольный нажал F5. Красота, да и только!

          Начал скроллить страничку вниз и чувствую, что-то не то…


          Такое чувство, как будто я играю в Crysis на очень старом компьютере. Почему же на сайте начались «тормоза» и прокрутка проходит рывками?

          Я начал свое расследование…
          Читать дальше →
        • Monstroid: шаблон для WordPress на стероидах

            Привет Хабр! Вчера мы зарелизили «Monstroid» – тему-конструктор для WordPress. Новый продукт подойдёт пользователям WP самого разного уровня, а также поможет создавать сайты разной сложности, включая интернет-магазины.


            Читать дальше →
          • Веб-парсинг на Ruby

            image
            Это перевод статьи «Web Scraping with Ruby», которую я нашел полезной при изучении языка программирования Ruby. Парсинг меня интересует в личных целях. Мне кажется, это не только полезный навык, но и хороший способ изучить язык.
            Читать дальше →
          • Дайджест интересных материалов из мира Drupal #3

              Всем привет!

              Мы отобрали для вас самое интересное и полезное из мира Drupal за первые недели 2015 года.

              Druplicon

              По-русски



              1. Во-первых, в тестовом режиме запустилась новая площадка сообщества DrupalifeCommunity. Слово автору:
                Сразу скажу о судьбе проекта. Им я не претендую заменить Drupal.ru, это совершенно отдельное и самостоятельное начинание. Скажем так, альтернативное сообщество, как каким-то пытался стать DrupalSN.

                На новой площадке уже замечено несколько друпал-гуру, а это хороший знак :)
              2. Чуть ли не первая серьёзная статья на русском, в которой одновременно встречаются слова Drupal и Postgres: «Тестирование производительности Drupal: MySQL vs PostgreSQL часть 1». Очень ждём следующих частей!
              3. Продолжая тему баз данных, Роман Агабеков подробно пишет про репликацию master-slave MySQL.
              4. Как же без Panels: в этот раз «Добавляем поддержку Token'ов в настройки Panel Pane».
              5. Рубрика «Антиквариат»: код либрусека пятилетней выдержки.

              Читать дальше →
            • Функторы, аппликативные функторы и монады в картинках

              • Translation
              Вот некое простое значение:


              И мы знаем, как к нему можно применить функцию:


              Элементарно. Так что теперь усложним задание — пусть наше значение имеет контекст. Пока что вы можете думать о контексте просто как о ящике, куда можно положить значение:


              Теперь, когда вы примените функцию к этому значению, результаты вы будете получать разные — в зависимости от контекста. Это основная идея, на которой базируются функторы, аппликативные функторы, монады, стрелки и т.п. Тип данных Maybe определяет два связанных контекста:


              data Maybe a = Nothing | Just a
              

              Позже мы увидим разницу в поведении функции для Just a против Nothing. Но сначала поговорим о функторах!
              Читать дальше →
            • Список YouTube-каналов для обучения веб-разработке

                image


                Привет, хабражители!

                Представляю вам список YouTube-каналов для обучения веб-разработке. Список доступен на гитхабе, там он будет пополняться и редактироваться. В планах — создание отдельной странички для фильтрации каналов по тегам и рубрикам.

                Также хочу попросить вас о небольшой услуге: если вы знаете канал, не вошедший в список — опубликуйте ссылку на него в комментариях или отправьте pull request. Сообщество будет благодарно вам.

                Под катом — текущая версия списка.
                Читать дальше →
              • Возможна ли жизнь без шаблонизатора?

                • Tutorial
                Правильный ответ — да, легко!

                Практически всегда описывая устройство CleverStyle CMS у кого-то возникал вопрос, а как же настраивать внешний вид, ведь нет никаких шаблонов.
                Нужно признаться, я немного лукавил, говоря, что внешний вид можно изменить с помощью CSS. Изменить-то можно, но не кардинально.
                Шаблонизатора как не было, так и нет, и даже не планируется. Вместо этого для генерации простого HTML используется BananaHTML, а сам интерфейс ложится на плечи веб-компонентов и Polymer в частности.
                Читать дальше →
                • +2
                • 10.2k
                • 5
              • 58 признаков хорошего интерфейса

                • Translation
                У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

                1 Один столбец вместо нескольких


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

                image
                Читать дальше →
              • Функциональное программирование в Swift. Начало

                • Translation
                • Tutorial


                Предисловие переводчика.


                Отмечая окончание 2014 года, известная Swift группа SLUG из Сан-Франциско выбрала 5 наиболее популярных Swift видео за 2014 с организованных ею встреч. И среди них оказалось выступление Chris Eidhof «Функциональное программирование в Swift».
                Сейчас Chris Eidhof — известная личность в Swift сообществе, он — автор недавно вышедшей книги «Functional programming in Swift», один из создателей журнала objc.io, организатор конференции «Functional Swift Conference», прошедшей 6-го декабря в Бруклине и будущей конференции UIKonf.
                Но я открыла его, когда он, один из первых, опубликовал очень простую элегантную статью об эффективности функционального подхода в Swift к JSON парсингу.
                В этой статье нет недоступных для понимания концепций, никаких мистических математических «химер» типа «Монада, Функтор, Аппликативный функтор», на которых Haskell программисты клянутся перед оставшимся миром, закатывая глаза.
                Там нет и таких нововведений Swift, как дженерики (generics) и «вывод типа» (type inference).
                Если вы хотите плавно «въехать» в функциональное программирование в Swift, то вы должны познакомиться с его статьей «Parsing JSON in Swift» и выступлением на SLUG «Functional Programming in Swift».
                Читать дальше →
                • +10
                • 23.3k
                • 7
              • Архитектура мобильного клиент-серверного приложения


                  К добавлению внешнего сервера рано или поздно приходит любой сложный проект. Причины, при этом, бывают совершенно различные. Одни, загружают дополнительные сведения из сети, другие, синхронизируют данные между клиентскими устройствами, третьи- переносят логику выполнения приложения на сторону сервера. Как правило, к последним относятся большинство «деловых» приложений. По мере отхода от парадигмы «песочницы», в которой все действия выполняются только в рамках исходной системы, логика выполнения процессов переплетается, сплетается, завязывается узлами настолько, что становится трудно понять, что является исходной точкой входа в процесс приложения. В этом момент, на первое место выходит уже не функциональные свойства самого приложения, а его архитектура, и, как следствие, возможности к масштабированию.
                  Заложенный фундамент позволяет либо создать величественный архитектурный ансамбль, либо «накурнож» — избушку на куриных ножках, которая рассыпается от одного толчка «доброго молодца» коих, за время своего существования повидала видимо — невидимо, потому что, глядя на множественные строительные дефекты заказчик склонен менять не исходный проект, а команду строителей.
                  Планирование — ключ к успеху проекта, но, именно на него выделяется заказчиком минимальный объем времени. Строительные паттерны — туз в рукаве разработчика, который покрывает неблагоприятные комбинации где время — оказывается решающим фактором. Взятые за основу работающие решения позволяют сделать быстрый старт, чтоб перейти к задачам, кажущиеся заказчику наиболее актуальными (как-то покраска дымоходной трубы, на еще не возведенной крыше).
                  В этой статье я постараюсь изложить принцип построение масштабируемой системы для мобильных устройств, покрывающей 90-95% клиент-серверных приложений, и обеспечивающей максимальное отдаление от сакраментального «накурножа».
                  Читать дальше →
                  • +2
                  • 95.8k
                  • 7
                • Учебник AngularJS: Всеобъемлющее руководство, часть 1

                  • Translation
                  • Tutorial

                  Содержание


                  1 Введение в AngularJS
                  2 Engineering concepts in JavaScript frameworks
                  3 Modules
                  4 Understanding $scope
                  5 Controllers
                  6 Services and Factories
                  7 Templating with the Angular core
                  8 Directives (Core)
                  9 Directives (Custom)
                  10 Filters (Core)
                  11 Filters (Custom)
                  12 Dynamic routing with $routeProvider
                  13 Form Validation
                  14 Server communication with $http and $resource

                  1 Введение в AngularJS


                  Angular – MVW-фреймворк для разработки качественных клиентских веб-приложений на JavaScript. Он создан и поддерживается в Google и предлагает взглянуть на будущее веба, на то, какие новые возможности и стандарты он готовит для нас.

                  MVW означает Model-View-Whatever (модель – вид – что угодно), то есть гибкость в выборе шаблонов проектирования при разработке приложений. Мы можем выбрать модели MVC (Model-View-Controller) или MVVM (Model-View-ViewModel).

                  Этот обучающий материал задумывался как отправная точка для изучения AngularJS, его концепций и API, чтобы помочь вам создавать великолепные веб-приложения современным способом.
                  Читать дальше →
                • Индустрия киберспорта, часть 2

                    image

                    Привет! На связи Никита Бокарёв, креативный продюсер игрового направления Mail.Ru Group. Пришло время продолжить прерванный рассказ о киберспорте. Первую статью про историю этого явления можно прочитать вот здесь.

                    Кризис мира, кризис киберспорта


                    В прошлом посте я рассказал о зарождении и расцвете киберспорта, появлении и взлете первых крупных состязаний. Остановились мы приблизительно на 2007 году, с которого и продолжим рассказ.
                    Читать дальше →
                  • Про создание платформера на Unity. Часть 4.1, злодейская

                    • Tutorial
                    Привет, Хабр!

                    С прошлой статьи из этого цикла прошло достаточно времени (а с предшествующих ей статей — еще больше), поэтому самое время вернуться и рассказать вам как сделать самую коварную и злодейскую часть любой компьютерной игры — врагов. Оговорюсь заранее: здесь мы не будем рассматривать создание искуственного интеллекта для противников вашего персонажа. Посмотрим на то, какие типы противников наиболее распространены в платформерах и как их реализовать с помощью Unity.



                    Осторожно, под катом по-прежнему много гифок!

                    Читать дальше →
                  • CloudFlare + nginx = кешируем всё на бесплатном плане


                      В бесплатной версии Cloudflare все замечательно (ей-богу сказка!), но список кешируемых форматов файлов весьма ограничен.
                      К счастью кеширование всего подряд (до 512 Мб на файл) можно настроить в одно два действия.

                      Читать дальше →
                      • +48
                      • 48.8k
                      • 6
                    • Перевод и озвучка фильма дома: Хокинг. Моя краткая история

                        Год назад я перевёл и озвучил фильм Роберта Зубрина Марс: подполье. На Хабре публикация была тепло встречена, а сам фильм за прошедшее время был просмотрен более 200000 раз и до сих пор собирает научные дискуссии в комментариях.

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


                        Welcome to my world