четверг, 13 марта 2014 г.

json_encode with array_diff будьте осторожны

Столкнулся с проблемой что json_encode вместо массива [] почему то начал создавать объект, хотя я передаю в метод массив. Перед тем как передавать массив я использовал array_diff для того, что б отфильтровать некоторые элементы. В мануале почему-то это не описано, но оказывается при отборе элементов из массива1 функция сохраняет ключи массива. Причем интересно, если ключи идут по порядку нчиная с 0, то json_encode кодирует нормально, если ключи содержат промежуток, то уже кодирует как объект.

Примеры, что б проще понять:


пятница, 31 января 2014 г.

Куки в Zend Framework, setcookie и header('Set-Cookie: ');

По старинке для уставновки cookie всегда пользовался setcookie, но так как сейчас использую Zend Framework 1.12 то решил воспользоваться его методами. А именно так как они рекомендуют в мануале:

  1. $this->getResponse()->setRawHeader(new Zend_Http_Header_SetCookie(
  2.     'foo''bar'NULL'/''example.com'falsetrue
  3. ));

Все бы ничего, но позже у меня возникла ошибка и только после действительного долгого поиска я обнаружил что проблема в том, что такой метод отправки cookie перезатирает все остальные куки которые уже установила страница. Дальше я нарыл, что метод setRawHeader использует встроенную функцию php - header для установки cookie:

header('Set-Cookie:  ...');

И собственно эта функция и затирает все что уже было отослано.

Погуглив я нашел, что я не один - http://stackoverflow.com/questions/5499476/is-it-ok-to-send-cookie-headers-directly-with-header-calls (см после: EDIT: AN IMPORTANT NOTICE)

После этого пришлось вернуть код обратно к setcookie.

Но меня мучает вопрос - Что я упускаю в Zend Framework? Неужели Zend не знает об этом?

суббота, 23 ноября 2013 г.

Как подать на бизнес визу физ. лицу предпринимателю, что б не получить отказ?

Документы:
Для получения необходим обычный пакет документов для ФОП + несколько дополнительных документов, которые должны подтверждать ваши деловые связи с вашим зарубежным партнером.
Из таких документов я предоставил договор о сотрудничестве (укр + англ., оригинал не нужен, достаточно завизированой вами копии), все дополнительные договоры, акты выполненных работ за последние несколько месяцев, + в распечатке о движении средств обвел поступления от клиента средств на счет фоп.
Все документы на украинском/русском языке должны быть переведены на английский (либо язык страны, куда подаетесь). Примеры перевода документации по ФОП можете найти у меня в блоге.

Тонкости:
Буквально через день после подачи документов мне перезвонили из консульства и спросили, чем именно я буду заниматься в бизнес командировке. Я ответил честно, что разрабатывать программное обеспечение для заказчика, с 9 до 5 и так далее, после чего еще уточнили на каких условиях, кто за что платит и прочие нюансы. Буквально через 5 минут еще перезвонили опять и сказали, что так как у меня ситуация не достаточно ясна, то передадут мои документы в Иммиграционный офис в страну куда подавался, и ждите ответа от 2 до 6 недель. Причина была, что киевское посольство не могло определится достаточно ли мне визы, для выполнения таких видов работ или мне нужно разрешение на работу.
Через месяц, после того как мой клиент обзвонил все посольства и инстанции тут и "там" я получил отказ. Причина что-то вроде - вы не можете выполнять указанные действия на стороне клиента, а именно разработка ПО с 9 до 5 в офисе клиента, используя бизнес визу. Для выполнения таких работ необходимо разрешение на работу. Как выяснил мой клиент, бизнес визу дали бы без проблем, если я б рассказал историю что я написал некое уникальное ПО, которое знаю только я и мне его нужно установить на серверах заказчика и обучить персонал с ним работать.

Теперь понятно какие истории и поводы для работы ждут от нас посольства.

Итог:
Коротко говоря - отказ в получении визы. Что это такое? Это симпатичный голубенький штампик в паспорте и дополнительно несколько бумажек которые описывают отказ на русском, более полный текст на английском и языке страны и анкета которую посольство заполнило, тоже об отказе. Не знаю, страшен отказ или нет, но как мне сказали, теперь желательно подавать ксерокс описания этого отказа вместе с документами на другие визы.



 Приятных вам виз :)

 



вторник, 19 ноября 2013 г.

Подключение внешнего диска с ext2/ext3 (Linux) файловой системой на MacOSX

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

Есть достаточное количество платных программ для этой задачи, но есть и бесплатный путь. Для подключения диска вам понадобятся 2 программы. Одна программа это эмулятор файловых систем с помощью которой вы можете подключать к MacOSX сторонние файловые системы - OSX Fuse, вторая же - непосредственно модуль для работы с ext2/ext3 (чтение/запись) - fuse-ext2.

Прямые ссылки для скачивания:
http://sourceforge.net/projects/osxfuse/files/latest/download
http://sourceforge.net/projects/fuse-ext2/files/latest/download

Сначала устанавливаете osxfuse. Тут очень важно обратить внимание, что osxfuse это текущий актуальный проект, а сам модуль fuse-ext был разработан для предшественника - Mac Fuse. Именно поэтому при установке osxfuse нужно выбрать пункт установки - MacFUSE compatibility layer. Если этот пункт не выбрать fuse-ext2 работать не будет.

После установки osxfuse устанавливаете fuse-ext2. По идее ваша система теперь сама должна уметь монтировать устройства с ext2/ext3 разделами. Если все такие устроуство не монтируется само - попробуйте примонтировать его в ручную: создать точку монтирования (папку) и замаунтить:


Обратите внимание на disk1s1 - вам возможно понадобится сюда вписать нечто другое. Какое конкретное имя вписывать вы можете посмотреть в Disk Utility.

После этого в Finder вы должны увидеть свой диск.

Монтируем как read/write

У утилиты fuse-ext2 есть дополнительный набор параметров которым вы можете задать режим запись/чтение. Если вы хотите что б у вас всегда монтировались все внешние накопители как запись/чтение вам нужно подправить файл  

sudo vim /System/Library/Filesystems/fuse-ext2.fs/fuse-ext2.util

Около 207 строки должна быть строчка вроде:

OPTIONS="auto_xattr,defer_permissions" 

Закоментируйте ее и добавьте:

# OPTIONS="auto_xattr,defer_permissions"
OPTIONS="auto_xattr,defer_permissions,rw+" 


После этого все ваши внешние накопители с ext2/ext3 должны подключаться в режиме чтение/запись.

Успехов!

вторник, 15 октября 2013 г.

Интеграция Composer в PHPStorm, папки библиотек PHPStorm

Проблема: Некоторе папки в проекте PHPStorm считает как библиотеки, и соответственно не индексируются, игнорируются при поиске и т.д. Так же в настройках проекта изменения типа этих папок не сохраняется.

Причина: Собственно проблема возникла как раз из-за не до конца корректного использования Composer. В файле настроек composer.json была указана папка проекта  library как папка в которой стоит хранить библиотеки установленные с помощью Composer.

"vendor-dir": "library"
Получилось что в папке находились как собственные библиотеки так и 3d party. PHPStorm, будучи умным малым, автоматически считал конфигурацию composer и пометил все папки внутри указаннной как библиотеки.

Решение:
В версии 6.0.4  в которой работаю я мне пришлось убрать интеграцию проекта с composer. В более новых версиях PHPStorm появилась настройка "Add packages as libraries" для composer, которая говорит PHPStorm помечать или не помечать библиотеки, установленные composer, как "папки библиотек". Оба варианта все же оставляют возможность ошибочно внести в сторонюю библиотеку изменения. Мне кажется правильное решение будет разнести папки с собственными библиотеками и папку с библиотеками, установленными composer

понедельник, 16 сентября 2013 г.

Пример перевода документации по ФОП на английский язык

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

Пример перевода Справки о доходах (Довідка про доходи)

Пример перевода Свидетельство плательщика единого налога (Свідоцтво платника єдиного податку)

Пример перевода Сертификата о регистрации физического лица предпринимателя (Свідоцтво про державну реєстрацію)

Пример перевода Налоговой декларации физического лица предпринимателя (Податкова декларація платника єдиного податку - юридичної особи) (форма декларации устарела)

Пример переводв Выписки из госсударственного реестра о ренистрации физического лица предпринимателя (Виписка з Єдиного державного реєстру)



среда, 11 сентября 2013 г.

Срок хранения бухгалтерских документов, в частности акта приема-передачи выполненных работ

Заинтересовал вопрос - сколько стоит хранить акты приема передачи выполненых работ по моему ФОП. Накопал документ в котором нашел сроки хранения всей документации по предприятию.

http://zakon1.rada.gov.ua/laws/file/text/14/f377025n24.zip

В документе, на свой вопрос как долго хранить акты приема передачи выполненых работ, получил ответ - 3 года.

Популярные сообщения