ВсячинаМаксимальная длина URL-адреса в Internet Explorer и другие ограничения

Совершенно внезапно наткнулся на такое ограничение, как максимальная длина URL в Internet Explorer. Составляет она 2083 символа. Вот пруфлинк, если кто усомнится. С одной стороны, это много, но с другой - мало. По современным-то меркам, когда винты уже давно в несколько терабайт. На проекте, где вскрылся сей факт, длина некоторых ссылок переваливает за три тысячи. Тучища GET-параметров :)

Добавлю сюда ещё один параметр, про который не узнаешь, пока не наступишь на грабли. Уже не про эксплорер, а про PHP. Это max_input_vars, который по умолчанию равен 1000 и означает максимальное количество переменных, которое может быть передано в запросе, т.е. в $_GET, $_POST и $_COOKIE (по отдельности).

UbuntuУстановка последних версий Node.js и npm

Просто памятка. Надоело уже искать по интернету.

Делаем раз:

1
2
3
4
5
6
7
8
# ниже по ситуации, в зависимости от дистрибутива,
# если нет команды apt-add-repository
#
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update

Делаем два:

1
sudo apt-get install nodejs

И готово. Проверено на Ubuntu 14.04 LTS и 12.04 LTS :) Если не ошибаюсь, то npm установится автоматически с nodejs. Ежели не установился, то ещё одна строчка в консоли:

1
sudo apt-get install npm

Symfony2Symfony2 и Ember.js

Внимание, данная запись устарела. Работоспособность модуля ember-precompile под вопросом начиная с Emberjs 1.9, в связи с переходом на handlebars 2.0.0, а с версии эмбера 1.10+ шаблоны рендерятся с помощью HTMLBars, об этом напишу в ближайшее время.

Эту тему, конечно, в двух словах не опишешь, но попробую. Что это такое и с чем его едят - рассказывать не буду, т.к. раз уж вы сюда попали, то слова эти для вас не пустой звук. Расписывать, почему именно Symfony2 и Ember.js - тоже. Просто так сложилось. Ладно, вступление окончено.

В данной записи будет затронута только серверная часть, хотя не исключено, что когда-нибудь дойдут руки и до статеек по эмберу. Собственно, Symfony-приложение предоставит яваскриптовому приложению REST API, а так же неким образом "подготовит" его и выдаст клиенту в браузер.

ПрограммированиеProject Euler

Давно не писал сюда, надо исправляться :)

Какое-то время назад наткнулся на Projecteuler.net Штука оказалась очень интересная и до сих пор не отпускает. Если в двух словах, то это проект, где размещена куча задач математического и околоматематического характера для программистов, причём решить их надо таким образом, чтобы компьютер затратил на вычисления не больше минуты. Хотя это условие не совсем корректно, т.к. проект родился в 2001-м году, а компьютеры тогда были несколько другие. И список задач продолжает пополняться. В общем, надо придумать такой алгоритм, который работал бы не слишком долго :)

Помимо решения задачек, собственно, задумал на примере этого проекта немного разнообразить свой запас языков программирования, ведь просто так по книжкам изучить их вряд-ли выйдет, будет только казаться, что всё понимаешь, ровно до тех пор, пока не придётся что-то на этом языке “Х” написать. А на Project Euler этого что-то хватает с головой.

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

profile image

P.S. Присоединяйтесь :) Мой Friend Key, если что, 662120_5b583b32e92f784f26c6bc51a19ce5f0

RaspbianRaspbian + Node.js на Raspberry Pi

Приобрёл себе этот микрокомпьютерчик и замыслил для начала поднять на нём небольшой сайт, а чтобы скучно не было, задумал этот сайт написать на JavaScript с серверной стороны. Да и просто для разминки мозгов.

Поскольку на борту самый обычный линукс на основе Debian, то всё показалось предельно простым, т.е.:

1
sudo apt-get install nodejs npm

Однако стоило посмотреть версию установленных паркетов, так сразу и стало печально. И дело не только в циферках (0.6.19 для nodejs и 1.1.4 для npm), тот же модуль forever уже не запустишь. Хотя и сам Debian тоже не радует дремучестью своих пакетов, ну да ладно, хотят люди стабильности - пусть им будет стабильность :) А я пошёл гуглить.

Секреты JavaScript ниндзя

ЛитератураСекреты JavaScript ниндзя

Прикупил недавно эту книгу → "Секреты JavaScript ниндзя" (Джон Резиг, Беэр Бибо). Почти три года назад тоже писал тут о книге, связанной с JavaScript, и тоже фигурировали эти самые ниндзя :) Хотя ниндзя веб-разработки я так и не стал.

Как мне думается, название здесь не совсем соответствует содержанию. Секретов внутри никаких нет, напротив, информация, представленная в книге, просто обязательна к изучению любым веб-разработчиком. Поскольку, как ни крути, а сталкиваться с этим языком программирования приходится регулярно, но происходят эти столкновения часто эпизодически и по мелочам.

Теперь о самой книге. Зацепила. Есть у меня и другие, но именно с этой стало понятно, чем, собственно, JavaScript отличается от других языков. Доступно и с большим количеством примеров описываются основы языка. Для меня, например, прояснились такие тёмные стороны JavaScript, как прототипизированное наследование и сами прототипы, что позволяет взглянуть на объектно-ориентированное программирование с другой стороны, отличной от привычных реализаций, где объекты основываются на классах.

В общем, рекомендую :)

PostgreSQL

PostgreSQLУстановка PostgreSQL в Mac OS X

Установка будет производится из MacPorts. Можно, конечно, воспользоваться и "родным" приложением, доступным на официальном сайте, но я лично предпочитаю порты, хотя бы из-за своевременных обновлений.

Для начала установим, собственно, PostgreSQL:

1
sudo port install postgresql93
отладка

IDEPhpStorm и Xdebug - установка и настройка

Думаю, нет нужды объяснять про такой важный инструмент PHP-разработчика, как Xdebug. Знал о нём и я. Только вот руки всё никак не доходили, что бы просто взять и попробовать. Длилось это больше года. А в один прекрасный момент таки испробовал и очень доволен.

Для начала необходимо установить сам Xdebug. На убунте это довольно просто, на макинтоше - тоже. Напишу одну команду под другой, чтобы не растягивать (предполагается, что на маке используется MacPorts)

Ubuntu/Debian:

1
sudo apt-get install php5-xdebug

Mac:

1
sudo port install php5-xdebug

В операционной системе Windows всё может зависеть от ситуации. У меня, например, используется XAMPP, и заветная php_xdebug.dll обнаружилась в директории с остальными расширениями, оставалось только раскоментировать его в php.ini

Клонирование диска

ЖелезоЗамена диска в Mac mini на SSD

Пришло время проапгрейдить рабочий макинтош, а обновлять внутри и нечего, кроме памяти и накопителя. Оперативки пока достаточно, а вот повысить отзывчивость не помешает, поэтому SSD без вариантов :)

Речь ниже будет идти о модели Mac mini Mid 2011, если что.

typeahead.js

JavaScripttypeahead.js - Автокомплитер и Twitter Bootstrap.

Прикручивал автодополнение к полям формы на сайте, использующем Twitter Bootsrap, выбрал по инерции знакомый и привычный jQuery UI и тут же столкнулся с проблемой. Поля, использующие bootstrap-datepicker.js разнесло до полной неузнаваемости. Для начала просто отключил стили, необходимые для автокомплитера из jQuery UI, предполагая, что проблема именно в них, да и просто из любопытства, однако это не помогло - внешний вид улучшился, но до исходного варианта было ещё далеко :)

Морочить себе голову не стал, пытаясь соединить несовместимое, просто вбил в поисковик "twitter bootstrap autocomplete". И сразу наткнулся на то, что надо, т.е. на typeahead.js. Тут официальная страница с примерами, хорошая документация на GitHub. Добавить нечего. Просто брать и использовать. Внешний вид хорошо вписывается в общий стиль, не выглядит чужеродным :)