Рубрика «Веб-разработка» - 166

Mooha — нодовый интерфейс для PHP

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

Идея графического управления логикой программы мне всегда казалась очень элегантным, а в некоторых случаях, единственным удачным решением. Позже, когда помимо музыки и видео я увлекся программированием (в основном PHP, так уж сложилось), мне захотелось попробовать, пусть даже в качестве эксперимента, создать графическую оболочку для выполнения тех нехитрых задач, с которыми я сталкивался в своей работе.
Читать полностью »

Начну с того что SassyStudio распространяется под лицензией MIT и код проекта размещён на GitHub. Практически каждую неделю расширение обновляется и пополняется новыми функциями. Расширение можно найти в галерее инструментов Visual Studio.
Читать полностью »

image

Привет! Хочу рассказать вам о небольшом сообществе junior-разработчиков в Алматы и своём пути junior-разработчика в Казахстанском вебе.
Читать полностью »

image

3 октября 2013 года компания Zend объявила в своём блоге о доступности новой программы для сертификации девелоперов, основанную на языке PHP версии 5.5. На днях я успешно прошёл тестирование и стал третьим человеком в Украине, кто получил этот сертификат. Внутри я постараюсь рассказать подробнее о самом процессе тестирования и о подготовке к экзамену.Читать полностью »

Опросы про языки программирования (+ обновление)

Давно на Хабре не было опросов про популярность языков программирования. Идея опроса возникла из спора о популярности языка D в топике о новых возможностях C++. Существующие рейтинги: RedMonk, TIOBE, LangPop.com слишком косвенно меряют непонятно что.

Цель этих опросов: определить соотношение кол-ва людей, которые пишут на том или ином языке сейчас.
Читать полностью »

Дайджест интересных материалов из мира веб разработки и IT за последнюю неделю № 82 (3 — 9 ноября 2013)
Читать полностью »

Долгожданный выпуск AngularJS 1.2.0 готов. Ущипните себя, это не сон.

В AngularJS 1.2.0 исправлено множество проблем, найденных в 1.2.0-RC3, и введено несколько новых функций.

Со времени последнего стабильного релиза, наиболее заметными изменениями являются:Читать полностью »

Функции в PHP 5.6 — что нового?

Слева направо: Rasmus, Build 5.4, Version 5.5, Relise 5.6

Сегодня хочу поделиться своим видением того, как будет выглядеть работа с функциями уже в ближайшем мажорном релизе PHP — 5.6. Для этого я изучил рабочие предложения и нашёл там немало вкусняшек:

  • Новый синтаксис для функций с переменным числом аргументов и радостный отход в историю мороки с func_get_args():
    function fn($reqParam, $optParam = null, ...$params) { }
    

  • Опускаем указание значений для необязательных аргументов:
    function create_query($where, $order_by, $join_type = '', $execute = false, $report_errors = false) { }
    create_query('deleted=0', 'name', default, default, /*report_errors*/ true);
    

  • Импорт функций из пространства имён:
    use function foobarbaz;
    baz();
    

  • Исключения вместо набивших оскомину фатальных ошибок:
    <?php
    function call_method($obj) {
        $obj->method();
    }
    
    call_method(null); // oops!
    
    try {
        call_method(null); // oops!
    } catch (EngineException $e) {
        echo "Cool Exception: {$e->getMessage()}n";
    }
    

  • Добавление модификатора deprecated:
    deprecated function myOldFunction() { }
    

  • Вызов методов и доступ к свойствам создаваемого объекта:
    new foo()->xyz;
    new baz()->bar(); 
    

Большинство из приведенных предложений пока находятся на стадии обсуждения. Но среди них уже есть утверждённые и даже реализованные.

Также искушённого читателя ждёт эксклюзив: изучая чужие умные мысли, я и сам решился написать собственный RFC. Сейчас вы не увидите его в списке предложений, так как на данный момент он находится на самом начальном этапе — на рассылке internals@lists.php.net.

А начну обзор с RFC, который уже реализован и гарантированно попадает в релиз 5.6.

Синтаксис для функций с переменным числом аргументов

Реализовано в PHP 5.6, Принято 36 голосами против 1

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

function fn($reqParam, $optParam = null, ...$params) {
    var_dump($reqParam, $optParam, $params);
}
 
fn(1);             // 1, null, []
fn(1, 2);          // 1, 2, []
fn(1, 2, 3);       // 1, 2, [3]
fn(1, 2, 3, 4);    // 1, 2, [3, 4]
fn(1, 2, 3, 4, 5); // 1, 2, [3, 4, 5]

$params будет пустым массивом, если число переданных аргументов меньше, чем число объявленных. Все последующие аргументы будут добавлены в массив $params (с сохранением порядка). Индексы в массиве $params заполняются от 0 и по возрастанию.
Читать полностью »

Flask и загрузка файлов: success story
Добрый вечер, читатель. Хочу поделиться небольшим опытом ограничения размера загружаемого файла. Весь опыт получен эмпирическим путем.

Как выглядело ТЗ:

  1. В шаблоне создаем формочку с полем для файлов
  2. На сервере проверяем расширение файла и его размер
  3. Если все условия удовлетворяются — загружаем файл и сохраняем ссылку в БД

Все выглядит просто, но печаль настигла меня при проверке размера файла. Как я решил эту проблему? Добро пожаловать под хабракат.
Читать полностью »

IE11: Compatibility List vs. X UA CompatibleВчера я опубликовал топик, в котором описал некоторые удивительные решения, которые приняла компания Майкрософт при выпуске новых версий своего так сказать браузера Internet Explorer. Если вкратце, это:

  • введение режимов совместимости со всеми ранее выпущенными версиями браузера вплоть до 5.5;
  • решение эмулировать эту совместимость путём тщательного портирирования старых багов;
  • отказ от указания имени браузера в юзер-агенте на фоне заявлений о том, что детектировать IE11 по юзер-агенту не надо;
  • слом обратной совместистимости между последним Developer Preview и RTM релизом;
  • разное поведение, вплоть до падения в некоторых ситуациях, одного и того же браузера под разными версиями операционной системы;
  • поддержание глобального списка совместимости, в который попадают те сайты, которые, по мнению Майкрософт, должны показываться в одном из режимов совместимости IE;
  • формирование этого списка на основе статистики по кликам пользователей preview-версий браузера в кнопку «Compatibility View»;
  • приоритет этого списка над заданной вебмастером метой X-UA-Compatible в RTM-сборке IE11.

Появление этого топика вызвало вал добродушных комментариев, начиная от «автор истеричка» (как будто какой-то из изложенных фактов становится от этого менее весомым) до «Столько бреда, я давно не читал. Смысла даже нет проходиться по всей статье и указывать на ошибки автора». На просьбу таки указать ошибки в изложении было почему-то только отмечено, что последний из приведённых пунктов — а именно, приоритет списка совместимости над X-UA-Compatible — не соответствует действительности (странно, почему же тогда «ошибки» во множественном числе, уважаемый SowingSadness?). Далее в треде от меня потребовали предоставить доказательства этого пункта, заявив, что я либо ошибся, либо просто его придумал.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js