• Как понять, что происходит на сервере



      Александр Крижановский ( krizhanovsky, NatSys Lab.)


      По Сети уже давно бегает эта картинка, по крайней мере, я ее часто видел на Фейсбуке, и появилась идея рассказать про нее:


      Читать дальше →
    • Laravel TestTools — запись тестов для Laravel прямо из браузера Chrome

        Вчера Marcel Pociot представил новое расширение для браузера Chrome «Laravel TestTools», которое позволяет «записывать» действия пользователя при создании тестов для Laravel.

        Вот как это выглядит:

        image
        Читать дальше →
      • Мультиисключение или Хочу поделиться одним интересным архитектурным приемом

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

          Вы только гляньте. Вот например Yii и Yii2, получение ошибок валидации модели:
          $errors = $model->getErrors();
          

          Symfony, ошибки формы:
          $errors = $form->getErrors();
          

          Активно рекламирующийся Pixie (давненько про него ничего не было):
          $result = $validator->validate($data);
          $errors = $result->errors();
          


          Что тут не так?
          Да всё. Всё не так. Весь этот код очень дурно пахнет, он пахнет временами PHP4, спагетти-архитектурой и диким смешением понятий.

          Что же делать?

          Читать дальше →
        • How to ReactJS

          • Translation
          • Tutorial
          Для новичка, экосистема вокруг React (как и фронтэнда в целом) может показаться запутанной. Этому есть несколько причин.

          • Изначально, React был нацелен на экспертов и ранних последователей
          • Facebook открывает исходный код только тех продуктов, которые использует сам, т. е. не нацеленные на проекты-меньше-чем-Facebook
          • Огромное количество гайдов по React совершенно разной сложности


          Здесь и далее, я предполагаю, что вы уже знакомы с HTML, CSS и JavaScript.

          Читать дальше →
        • Почему сложно программировать UI и как выглядит идеальный фреймворк

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

            Одна из сложных задач современной разработки — это программирование пользовательского интерфейса. С увеличением количества элементов сложность увеличивается нелинейно и совладать с огромным количеством вариантов, состояний и переходов становится практически невозможно. Фреймворки вроде Angular со своим двусторонним связыванием пытается решить эту проблему, но на фундаментальном уровне ничего не меняется.

            Со-основатель, технический директор и главный учитель нашего образовательного проекта Хекслет Кирилл Мокевнин рассказывает про сложность программирования интерфейсов и каким образом можно совладать со сложностью если вы знакомы с одной базовой концепцией информатики. Заодно расскажет и покажет идеальный JS-фреймворк для программирования UI.

            Читать дальше →
          • Производительное юнит-тестирование веб-приложений на примере yii2 и codeception

            Задача данной статьи — показать самый производительный путь написания тестов в контексте разработки веб-приложений.
            Здесь и дальше под термином тесты будут подразумеваться юнит-тесты.

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

            Источник проблемы находится в отсутствии четкого разделения кода работы с базой данных, кода, которому необходим фреймворк, и кода, для работы которого не нужна ни база данных, ни фреймворк.

            Наша цель будет разобраться, каким образом необходимо писать тесты и код для обеспечения максимальной скорости выполнения тестов.
            Читать дальше →
            • +11
            • 19.8k
            • 3
          • Отлаживаем правила RewriteRule, или немного об интимной жизни mod_rewrite

              У меня RewriteEngine всегда был довольно стрессовой темой. Только вот недавно я вдруг обнаружил, что все как-то улеглось и стало более или менее понятно. Поскольку я совершенно обычный человек, я уверен, что ситуация ошибки конфигурации веб-сервера «доставала» не одного лишь меня, и я спешу поделиться своим опытом.

              Получилось нечто среднее между руководством по использованию модуля mod_rewrite и своеобразным справочником по конфигурированию веб-сервера с помощью файла .htaccess. Попутно хотелось бы заострить внимание на особо сложных или неочевидных моментах.

              Предполагается, что читатель использует урл-рерайтинг в своей работе, знает, в общих чертах, что такое RewriteEngine и уже провел несколько часов за его настройкой. Эта статья не совсем для начинающих, но и не для супер-профи, конечно.

              Читать дальше →
            • Actor Open Messaging Platform от разработчика Telegram

                Всем привет!

                Наша команда недавно выпустила небольшой продукт — открытую платформу для создания мессенджеров — Actor Messaging Platform.



                Всего за несколько дней после запуска мы оказались на главной Hacker News (кто из разработчиков не читает — зря), на Reddit и собрали больше 600 звезд на GitHub от разработчиков со всего мира. У нас появилось небольшое сообщество, участники которого помогают друг друге в работе и улучшении продукта. Один из участников уже реализовал несколько важных вещей, необходимые Актору. Например, достаточно высококачественные звонки.
                Читать дальше →
              • Образовательные видео на YouTube обошли по популярности развлекательные

                  Не так давно видеосервис YouTube отпраздновал свое 10-летие. На данный момент аудитория ресурса составляет более миллиарда уникальных пользователей в месяц. Однако у большинства людей YouTube ассоциируется с котиками и смешными падениями. На самом же деле статистика показывает совершенно другую картину. Оказывается, наиболее популярными и просматриваемыми на YouTube являются образовательные каналы и видео.
                  Читать дальше →
                • Favicons, Touch Icons, Tile Icons и т. д. Что выбрать?

                  • Translation
                  От переводчика.
                  Это перевод статьи Филипа Бернарда с сайта css-tricks.com. Часть статьи, содержащую описание работы с созданным им сервисом, я позволил себе опустить. Если вы найдете ошибки, просьба сообщить о них в личном сообщении.

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


                  Фавикон был представлен в 1999 году, в Internet Explorer 5 (источник) и стандартизирован W3C несколько месяцев спустя. Это была маленькая иконка, представляющая сайт.



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

                        Это перевод (причем достаточно вольный) выступления 2013 года программиста на Ruby по имени Greg Bauges, посвященного депрессии и психическим расстройствам в среде программистов. Выступление старое, но проблема вечная. Вот само видео с конференции:



                        Итак, начнем, меня зовут Грег. Я работаю в компании Table XI в Чикаго. Мы что-то вроде веб-студии из 30 человек. Я программировал большую часть своей жизни, начав еще с TRS-80, когда мне было только 6 или 7 лет. Там были кассеты и Basic, я даже еще помню ежемесячный журнал 3-2-1 Contact, который печатал на заднем развороте программы для BASIC. Тогда я не мог копипастить и мне оставалось только перепечатывать программу чтобы запустить, заставляя меняться цвета на экране и делать прочие непотребства… Я провел большую часть моей жизни пытаясь усидеть на двух стульях — программируя и работая с клиентами. И еще у меня биполярное расстройство второго типа(БАР2) и СДВ, и сегодня я хочу рассказать вам свою историю, друзья. Рассказать вам почему мы должны уделять внимание депрессии и психическим заболеваниям на подобных встречах, конференциях, и в разговорах с коллегами.
                    Читать дальше →
                  • Ускоряем MySQL insert/update в 5-10 раз

                    Немного теории. В операционных системах UNIX существует раздел файловой системы, который физически находится в оперативной памяти, но позволяет работать с ним как с обычным дисковым накопителем. Скорость доступа к блоку жесткого диска приблизительно равна 1 мс. Скорость доступа к памяти — 0.001 мс. Попробуем применить это к БД MySQL, чтобы выжать максимум из операций insert/update.
                    Читать дальше →
                  • Что нужно знать при миграции с MySQL на PostgreSQL?

                    • Tutorial
                    В продолжение статьи о теории и практике миграции хранилищ данных на PostgreSQL, мы поговорим о проблемах, с которыми вы можете столкнуться при переезде с распространенной СУБД MySQL. Дабы не утомлять всех лишней риторикой, сегодняшний рассказ будет более тезисный и проблемно-ориентированный.

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

                    Именно поэтому в предыдущей статье я рекомендовал не тратить время на поиск серебряной пули и написать что-нибудь свое “на коленке”, что действительно работает. Данная статья призвана облегчить написание такого инструмента, указывая на потенциальные изъяны, в наличии которых вы может сравнительно быстро убедиться.

                    Перейдем к делу.
                    Читать дальше →
                  • Обзор специализированных способов обхода блокировок в интернете

                      Представляю вашему вниманию обзор и мои субъективные оценки некоторых специализированных способов обхода блокировок со стороны провайдеров или сетевых администраторов.

                      1. Аддоны для браузеров


                      ZenMate (Chromium-based, Firefox, Android, iOS)

                      • Удобство использования: 5/5
                      • Скорость: 5/5
                      • Шифрование трафика: Да (TLS)
                      • Анонимность: Да
                      • Проксирование всего трафика: Да
                      • Выборочное проксирование: Да

                          Описание:
                              Хороший, быстрый аддон.
                              На момент тестирования было доступно 5 прокси в разных странах.

                          Плюсы:
                              Высокая скорость работы аддона
                              Быстрые прокси

                          Минусы:
                              Требуется регистрация в сервисе
                      Читать дальше →
                    • Симфония самоподдува

                            Иногда, несмотря на все недостатки, технология выстреливает. Все эти проблемы видят, ругаются, удивляются, но ничего сделать не могут. Уже выстрелило, а значит придется пользоваться, неожиданно, конечно, но раз в год и палка стреляет. Хотя стремительное появление новых технологий в сфере веб-разработки скорее напоминает работу многоствольного деревянного пулемета, изрыгающего фекалии. Переходя от метафор к конкретике, предположу, что PHP-фреймворк Symfony, на мой взгляд, является ярким представителем таких технологий. И о проблемах этого фреймворка я бы и хотел поговорить.

                            Среди тех, кто пишет на Symfony встречается много людей, которые его искренне любят. А среди тех, кто его не любит встречается много людей, которые тем не менее этим фреймворком зарабатывают. Так что все написанное ниже не более, чем психотерапия для последних, а также удобная ссылка для троллирования первых фанатами, например, Yii.

                        Читать дальше →
                      • Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

                          Вступление


                          Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

                          Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

                          Надеюсь что эта статья будет полезна:
                          1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
                          2. Профессионалам, которые хотят закрыть «дыры» и пробелы
                          3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
                          4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

                          Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
                          Читать дальше →
                        • Именование сложных действий в REST API

                            Во всех руководствах в описаниях REST дают простые примеры, типа вот вам пользователи, они будут ресурсом /users, вот вам один пользователь, он будет /users/[id] и действия с ним добавить\удалить\изменить.

                            А что если действия сложные или комплексные и не вписываются в GET\POST\DELETE?

                            Читать дальше →
                          • USPS снимает запрет на пересылку литиевых батарей

                              Good news everyone. Справедливость восторжествовала и с 15 Ноября USPS снова начнет отправлять любые гаджеты с литиевыми батареями в меджународных отправлениях, о чем нам моментально сообщили мейл форвардеры pochtoy и бандеролька в своих новостях.
                            • Самый лучший поисковик по музыке

                                Думаю для многих будет старо на всё же рискну)

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

                                По сути сайт представляет собой огромную кучу ссылок на разные открытые источники. Зачастую используется именно вконтакте.

                                Пока нашёл всё, что я запрашивал — и малоизвестного в мире noize mc и относительно популярных Blank and Jones…
                                В общем, думаю многим пригодится.

                                Из комментов
                                UPD tagoo.ru — также отличный ресурс. Может даже лучший.
                                UPD2 Действительно, сайт почти не отличается от vpleer.ru.
                                UPD3 Не советую связываться с mp3shki.ru. По мне интерфейс избыточен, и надо регаться и ещё что-то там…
                                UPD4 Также не советую заходить на www.mp3real.ru — помимо того, что надо гдето в течение минуты резать баннеры, так ещё и не нашёл почти ничего, что я ему «скармливал».
                                UPD5 Ещё один вариант предложен — и он более стандартен, скорее для редкой музыки — набирать в гугле или другом поисковике " «названия альбома» + megaupload (и далее по списку обменников)" или же использовать так же поисковик по жж — ljseek.com.
                                UPD6 Ещё вот что народ рекомендует, я не тестировал

                              • Яндекс.Нано

                                  Открылся «наружу» список как новых, так и уже довольно известных нанопроектов компании: Яндекс.Нано
                                  У сотрудников Яндекса есть много проектов, которые еще рано называть большими, но которые уже могут быть интересны. Именно для таких проектов существует Яндекс.Нано — площадка для экспериментов и собрание оригинальных разработок Яндекса.

                                  По словам bobukГригория Бакунова,
                                  Это экспериментальный сервис который разрабатывается в свободное время.



                                  Новости на techme