Pre-Signed URL for Amazon S3 Object

It’s so easy enough than I thought before!

At first let’s upload file to chosen bucket. Below is a live example from my Laravel 5 project:

I’ve set ACL to ‘authenticated-read’ (it was ‘public-read’ before) because the aim of pre-signed URL is to restrict access and give it only to authorized users (who have valid link).

Then if we want to get actual download URL let’s get our S3 client:

Then get appropriate command:

Get request to execute this command:

And finally get the pre-signed Url to download private resource!

I’m using a kind of download controller that acts as proxy of user request to download a private file so the result of its work is a redirect to actual resource URL:

Отточие в содержании

Как выставить «отточие» в Apple Pages?

Ответа на этот вопрос я не нагуглил, но нашел методом научного тыка. Изи:

Отточие в содержании

Эту штуку ищем при нажатии  на любой пункт в оглавлении, далее — в окне настройки «формат» справа выбираем таб «текст» и в самом низу в области «табуляторы» выставляем нужное значение для аттрибута «выносная».

Удачи!

P.S. Сегодня узнал, что правильней будет говорить не «I’m gonna to finish my diploma work», а «to finish my thesis work». Так что I’m gonna finish my thesis work this night 😉

Eloquent model default values

Tryin’ to find a way to set default model values in Eloquent model (speaking about Laravel ORM) I was surprised that there’s no any mention about it in official docs. So thanks to fellas from StackOverflow such a workaround was found:

This example shows you how to set default value to ‘foo’ model property (model field, attribute, etc) if you’re creating a new FooModel record. Читать далее

xDebug под MAMP

Как-то сидим мы с другом, кодим каждый свое. Очередную свою неполадку я пытался отладить типичным способом die(). Это не очень понравилось другу и он сообщил, что если я не научусь нормально отлаживать «как бог», то за эти дополнительные знания никто не заплатит. Мотивация была поставлена, и я решил разобраться с тем, чтобы все-таки запустить у себя xdebug. Он и до этого работал, но только на уровне «покажи колстек ошибки».

Коротко о том, как под запустить xDebug под MAMP (учитываем, что работаем на Mac OS X).

1. Идем на http://xdebug.org/wizard.php и вставляем в текстовое поле ввода результат выполнения функции phpinfo() на локальной машине

2. После нажатие «Analyze» мы получаем четкое руководство к действию. Что-то вроде этого:

Скорее всего, в системе xdebug у вас уже установлен (как это было у меня), но он подключен в режиме php-расширения. Нам же нужно Zend-расширение, чтобы были возможными разного рода breakpoints и иже с ними.

Поэтому строку extension=phalcon.so стираем из php.ini

3. Все вышеописанные действия дают установленное Zend-расширение. Остается только в актуальном php.ini дописать в конце:

 

В принципе, все!

Если для отладки использовать Sublime Text, то нужно через Packages Manager установить Xdebug Client. Затем через меню Tools > Xdebug выбрать «Start new session» (или что-то вроде этого). Ставим бряки, обновляем страницу сайта и радуемся!

Я убил на это часа 3…

Снимок экрана 2015-05-12 в 12.27.09

Что означает SGA_MAX_SIZE и SGA_TARGET?

Казалось бы, все очевидно. Но нет.

Во-первых, стоит понимать, что установка этих значений имеет смысл при включенном ASMM. Тогда системе есть на какие показатели ориентироваться. По-умолчанию же оба этих параметра установлены в 0.

Во-вторых, может показаться, что SGA_MAX_SIZE — это тот максимум, на который ASMM может рассчитывать при выделении в ОЗУ пространства под разные пулы (java pool, shared pool и т.д.), а SGA_TARGET — это рекомендуемое пространство или, другими словами, минимум.

На самом деле все обстоит несколько по-другому.

Читать далее

Снимок экрана 2015-05-08 в 13.10.18

Как отобразить файловую структуру директории из терминала?

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

Так или иначе делюсь находкой:

Просто  выполняем это в терминале и получаем до безобразия простой текстовый вывод файловой структуры текущей директории. Например:

Это структура моего дипломного проекта, пока тут далеко не все. Можно сказать, начало.

Более красивый и геморный способ — написать скрипт на Python, положить куда-нибудь в /var/ и сделать симлинк.

Если не поленюсь, напишу такой. Благо, py-интерпретатор сразу встроен в системе и это можно считать нативным способом.

Скопипастил отсюда.

Приветствие

Привет!

Это блог с разными околокомпьютерными заметками от компьютерщика и «тыжпрограммиста» Евгения, который обучается в СПбПУ.

Welcome!

IMG_2015-04-28 23:26:00

Создал бложек

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

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

blog-shot-1

Отображение скрытых файлов в Finder

Казалось бы, проблема давно уже решена — просто в терминале вбиваешь одну команду и радуешься. Но это ведь:

  1. Слишком просто
  2. Как-то некрасиво

К слову сказать, меня вообще эта «проблема» не особо заботила, т.к. при разработке чего-либо я часто все выполняю в терминале, в т.ч. и открываю/работаю со скрытыми файлами и папками. Но поинтересовавшись у моего одногруппника о том, зачем он себе на ноут поставил ForkLift (такой Total Commander под макось), мы перешли к обсуждению того, что килл-фичей этой программы является удобное отображение/скрытие скрытых файлов. Буквально одной кнопкой все это управляется. Впрочем, аргумент понятный и весомый.

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

Немного погуглив, было найдено решение, которое я обкатал под себя. Итак, по порядку: Читать далее