<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6575557278453015496</id><updated>2024-09-04T13:43:32.841+03:00</updated><category term="mikrotik"/><category term="networking"/><title type='text'>Блог Сергея Васильевича aka Delagen</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-7320928583894059581</id><published>2023-06-09T14:03:00.000+03:00</published><updated>2023-06-09T14:03:02.567+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mikrotik"/><category scheme="http://www.blogger.com/atom/ns#" term="networking"/><title type='text'></title><content type='html'>&lt;p&gt;&amp;nbsp;Фанатам &lt;b&gt;Mikrotik &lt;/b&gt;дома и любителям настраивать 121 опцию в DHCP&lt;/p&gt;&lt;p&gt;Задался вопросом как красиво заполнять эту опцию, чтобы потом не сломать мозг разбирая HEX по RFC&amp;nbsp;&lt;span style=&quot;background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;&quot;&gt;3442.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Методом проб и ошибок оказалось довольно всё просто:&lt;/p&gt;&lt;p&gt;мне надо было добавить 3 маршрута&lt;/p&gt;&lt;p&gt;10.200.200.0/24 =&amp;gt; 10.222.222.222&lt;/p&gt;&lt;p&gt;10.200.222.0/24 =&amp;gt; 10.222.222.222&lt;/p&gt;&lt;p&gt;default =&amp;gt; 10.222.222.222&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;т.е. в RFC&amp;nbsp;&lt;span style=&quot;background-color: white; color: #202122; font-family: sans-serif; font-size: 14px;&quot;&gt;3442 это будет выглядеть как&lt;/span&gt;&lt;/p&gt;&lt;p&gt;10.200.200.0/24 =&amp;gt; 10.222.222.222&amp;nbsp; &amp;nbsp; &amp;nbsp;18 0A C8 C8 0A DE DE DE&lt;/p&gt;&lt;p&gt;10.200.222.0/24 =&amp;gt; 10.222.222.222&amp;nbsp; &amp;nbsp; &amp;nbsp;18 0A C8 DE 0A DE DE DE&lt;/p&gt;&lt;p&gt;default =&amp;gt; 10.222.222.222&lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;00 0A DE DE DE&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Так вот, методом проб и ошибок решается это так в Mikrotik опцию можно задать как&lt;/p&gt;&lt;p&gt;&#39;&amp;lt;длина маски&amp;gt;[.&amp;lt;маска&amp;gt;]&#39;&#39;шлюз&#39; .... &#39;&amp;lt;длина маски&amp;gt;[.&amp;lt;маска&amp;gt;]&#39;&#39;шлюз&#39;&lt;/p&gt;&lt;p&gt;В итоге это превращается в&lt;/p&gt;&lt;p&gt;&#39;24.10.200.200&#39;&#39;10.222.222.222&#39;&#39;24.10.200.222&#39;&#39;10.222.222.222&#39;&#39;0&#39;&#39;10.222.222.222&#39;&lt;/p&gt;&lt;p&gt;Что гораздо нагляднее, да вроде смотрится не очень, но зато если знаешь как читать то всё норм)&lt;/p&gt;&lt;p&gt;В принципе проверять конечно по количеству знаков всё равно рекомендую.&lt;/p&gt;&lt;p&gt;Красиво конечно это смотрится с масками, которые выглядят как IP, но если нечетные то лучше записывать так:&lt;/p&gt;&lt;p&gt;&#39;&amp;lt;длина маски&amp;gt;&#39;&#39;&amp;lt;октет0&amp;gt;&#39;&#39;&amp;lt;октет1&amp;gt;&#39; ... &#39;&amp;lt;шлюз&amp;gt;&#39;&lt;/p&gt;&lt;p&gt;Например:&lt;/p&gt;&lt;p&gt;10.0.0.0/7 =&amp;gt; 10.222.222.222 будет выглядеть как &#39;7&#39;&#39;10&#39;&#39;10.222.222.222&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;что преобразуется в 07 0A 0ADEDEDE.&lt;/p&gt;&lt;p&gt;Но если попытаться записать как &#39;7.10&#39;&#39;10.222.222.222&#39;,&amp;nbsp;&lt;/p&gt;&lt;p&gt;то получается как 07 00 00 0A 0ADEDEDE, что неверно по RFC.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Удачи в конфигурировании.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/7320928583894059581/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2023/06/mikrotik-121-dhcp-hex-rfc-3442.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/7320928583894059581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/7320928583894059581'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2023/06/mikrotik-121-dhcp-hex-rfc-3442.html' title=''/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-4175722474304848986</id><published>2020-06-15T10:40:00.007+03:00</published><updated>2020-06-15T16:00:35.891+03:00</updated><title type='text'>Прекратите спрашивать программистов о теоритических вещах</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
&lt;div dir=&quot;ltr&quot;&gt;Проходил тут собеседование по JS.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot;&gt;И как ведомо подгорело. Предложение собеседующим: если сами не в теме, то не спорьте, а если не можете поддержать и раскрыть разговор, то собеседование это не ваше.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot;&gt;
1. Вопрос более холиварный Function - это отдельный тип JS?&lt;/div&gt;&lt;div dir=&quot;ltr&quot;&gt;В учебниках написано что это тип объекта, впрочем как и Array.
Но тогда резонный вопрос, если это не отдельный тип (хотя даже typeof выделяет его отдельно), то как я могу создать его вручную из Object каким либо образом не беря ничего из Function?&amp;nbsp;&lt;/div&gt;&lt;div dir=&quot;ltr&quot;&gt;Я понимаю что под капотом оно наследуется всё от Object, но как создать его вручную реализовав какой либо интерфейс или объявив какое либо спец свойство я не знаю, может быть мне помогут комментарием коллеги?&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot;&gt;
2. Typescript вопросы про количество элементов в Enum, я понимаю что вопросы про это бред, но всё таки
Есть понятие const enum, которое не попадает в код, а попадают только значения. Собеседующий быстро отбрехался от этого.
Рекомендую проверить вывод этого кода:&lt;br /&gt;









&lt;pre style=&quot;font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; text-align: left; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;font color=&quot;#3063d4&quot;&gt;&lt;span style=&quot;background-color: #fffffe;&quot;&gt;Фрагмент TS&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre style=&quot;color: black; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; text-align: left; white-space: pre;&quot;&gt;&lt;span style=&quot;background-color: #fffffe; color: #3063d4; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;background-color: #fffffe; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fffffe; color: #3063d4; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;enum&lt;/span&gt;&lt;span style=&quot;background-color: #fffffe; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fffffe; color: #1142af; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;A&lt;/span&gt;&lt;span style=&quot;background-color: #fffffe; font-family: consolas, &amp;quot;courier new&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style=&quot;color: black;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #1142af;&quot;&gt;A,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #1142af;&quot;&gt;    B,&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #1142af;&quot;&gt;    C&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;console.log(&lt;span style=&quot;color: #1142af;&quot;&gt;A&lt;/span&gt;.&lt;span style=&quot;color: #1142af;&quot;&gt;B&lt;/span&gt;);&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;Сколько значений попало в код?&lt;br /&gt;99% программистов можно засыпать вопросом из базового синтаксиса, типа деструктивного &lt;br /&gt;присваивания, специфических символов и прочих вещей, которые пользуются 1% всего времени&lt;br /&gt;и не всегда несут полезную нагрузку, например со строками деструктуризации и присваивания&lt;br /&gt;иногда над одной строкой можно голову сломать, не то что еще и ошибку уловить.&lt;br /&gt;греет сковородки, но это же не мешает ей пользоваться и вкусно готовить.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ну и общее: прекратите вы сыпать теорией из книжки...&lt;br /&gt;
&lt;br /&gt;Учитесь раскрывать большее! Ну не знает у меня жена как и за счёт чего индукционная плита&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/4175722474304848986/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2020/06/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/4175722474304848986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/4175722474304848986'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2020/06/blog-post.html' title='Прекратите спрашивать программистов о теоритических вещах'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-917135680724294285</id><published>2020-05-19T02:50:00.001+03:00</published><updated>2020-05-19T02:50:56.483+03:00</updated><title type='text'>createrepo под Ubuntu для RPM репозитариев в связи с кончиной Python 2</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;Я как гик люблю обновления) Поэтому как выходит более менее стабильный релиз то ставлю его сразу, чтобы понимать что может сломаться у клиентов и опередить заявки.&lt;div&gt;Так было и с Ubuntu 20.04, но так как Python 2 снят с поддержки еще в начале года, то из репозитария пропали многие пакеты зависящие от него.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Последнее что я использовал с его зависимость это был пакет createrepo для обновления метаданных репозитариев RPM.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Был найден проект &lt;a href=&quot;https://github.com/rpm-software-management/createrepo_c&quot; target=&quot;_blank&quot;&gt;https://github.com/rpm-software-management/createrepo_c&lt;/a&gt; который собран только под RedHat дистрибутивы, поиск собранных под Debian ничего не дал.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Временно были скачаны RPM пакеты и распакованы в /usr/local в принципе работало, хоть и с предупреждениями&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Принял решение поковыряться и собрать самому набор для установки.&lt;/div&gt;&lt;div&gt;Требуется дополнительно&lt;/div&gt;&lt;div&gt;- &lt;a href=&quot;https://github.com/rpm-software-management/drpm.git&quot; target=&quot;_blank&quot;&gt;https://github.com/rpm-software-management/drpm.git&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href=&quot;https://github.com/zchunk/zchunk.git&quot; target=&quot;_blank&quot;&gt;https://github.com/zchunk/zchunk.git&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- &lt;a href=&quot;https://github.com/fedora-modularity/libmodulemd.git&quot; target=&quot;_blank&quot;&gt;https://github.com/fedora-modularity/libmodulemd.git&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;На выходе получил пакеты&lt;/div&gt;&lt;div&gt;libdrpm&lt;/div&gt;&lt;div&gt;libdrpm-dev&lt;/div&gt;&lt;div&gt;libmodulemd&lt;/div&gt;&lt;div&gt;libmodulemd-dev&lt;/div&gt;&lt;div&gt;zchunk&lt;/div&gt;&lt;div&gt;libzchunk&lt;/div&gt;&lt;div&gt;libzchunk-dev&lt;/div&gt;&lt;div&gt;createrepo-c&lt;/div&gt;&lt;div&gt;libcreaterepo-c&lt;/div&gt;&lt;div&gt;libcreaterepo-c-dev&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Собственно ставлю с внутреннего репозитария и не знаю проблем без Python 2 )&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/917135680724294285/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2020/05/createrepo-ubuntu-rpm-python-2.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/917135680724294285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/917135680724294285'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2020/05/createrepo-ubuntu-rpm-python-2.html' title='createrepo под Ubuntu для RPM репозитариев в связи с кончиной Python 2'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-5724823848295917786</id><published>2017-08-29T13:22:00.001+03:00</published><updated>2017-08-29T13:24:31.581+03:00</updated><title type='text'>Оценка результата программиста</title><content type='html'>&lt;br /&gt;&lt;br /&gt;Типовая ситуация&lt;br /&gt;&lt;br /&gt;Требуется выполнить определенную работу. Есть &quot;специально обученные&quot; люди для её выполнения, которые собственно и отвечают за это.&lt;br /&gt;&lt;br /&gt;Естественно работу отдаем им, так как никто не хочет брать лишнюю работу. Работу берет человек и выполняет её за N часов.&lt;br /&gt;&lt;br /&gt;После этого человек не занимающийся эти, но что важно на той же категории (следовательно обладающий теми же навыками( смотрит на результат труда и у него кроме как удалить его желания не возникает. В итоге берет сам читает документацию и разбирается в вопросе и делает это за N/6 часов в свободное время с учетом адаптации под типовое применение. &lt;br /&gt;&lt;br /&gt;Возникает резонный вопрос: почему на выходе &quot;одинаковых в профессиональной оценке&quot; людей разный результат?&lt;br /&gt;&lt;br /&gt;Что-то не то с оценкой результата и мотивацией в организации.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Я считаю что программист должен оставаться программистом, и делать качественно даже ту работу, которую он никогда не делал.</content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/5724823848295917786/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2017/08/blog-post.html#comment-form' title='Комментарии: 2'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5724823848295917786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5724823848295917786'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2017/08/blog-post.html' title='Оценка результата программиста'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-5664444251263488418</id><published>2017-03-07T15:28:00.000+03:00</published><updated>2017-03-07T15:29:13.014+03:00</updated><title type='text'>Яндекс Деньги. Привязка карты. А нужна ли?</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Решил тут привязать к Яндекс Деньгам карту, чтобы использовать Яндекс Карту как транзитную, оказывается это нерабочий кейс.&lt;div class=&quot;gmail_signature&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Вот ответ поддержки:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;Если к Вашему счёту привязана карта другого банка, то Вы можете оплатить что-нибудь в интернете через Яндекс.Деньги с баланса этой карты. При этом баланс карты и кошелька не объединяется, просто при каждом платеже (только когда Вы выбираете оплату с карты и вводите CVV-код) деньги списываются именно с карты, привязанной к счету.&lt;/span&gt;&lt;/div&gt;&lt;br style=&quot;font-size:12.8px&quot;&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;Пополнить кошелек с карты можно тут: &lt;/span&gt;&lt;a href=&quot;https://money.yandex.ru/topup/card/carddetails.xml&quot; rel=&quot;noreferrer&quot; target=&quot;_blank&quot; style=&quot;font-size:12.8px&quot;&gt;https://money.yandex.ru/topup/&lt;wbr&gt;card/carddetails.xml&lt;/a&gt;&lt;br style=&quot;font-size:12.8px&quot;&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;По этой ссылке можно перевести деньги с кошелька на карту: &lt;/span&gt;&lt;a href=&quot;https://money.yandex.ru/direct-payment.xml?form-state=to-card&quot; rel=&quot;noreferrer&quot; target=&quot;_blank&quot; style=&quot;font-size:12.8px&quot;&gt;https://money.yandex.ru/&lt;wbr&gt;direct-payment.xml?form-state=&lt;wbr&gt;to-card&lt;/a&gt;&lt;br style=&quot;font-size:12.8px&quot;&gt;&lt;br style=&quot;font-size:12.8px&quot;&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;При оплате картой Яндекс.Деньги, средства должны быть на балансе Яндекс.Кошелька.&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;То есть нельзя оплачивать покупки Яндекс Картой с автосписанием средств с привязанной.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size:12.8px&quot;&gt;Смысл ясен. Плюсы Яндекс карты стали еще более неочевидны.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/5664444251263488418/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2017/03/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5664444251263488418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5664444251263488418'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2017/03/blog-post.html' title='Яндекс Деньги. Привязка карты. А нужна ли?'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-3507653461807420221</id><published>2017-01-12T08:52:00.001+03:00</published><updated>2017-01-12T08:52:24.179+03:00</updated><title type='text'>Zimbra и Ubuntu 16.04</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Насколько известно все переходят на SystemD систему инициализации.&lt;div class=&quot;gmail_signature&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;В принципе это правильно, но при обновлении Zimbra и Ubuntu 14.04-&amp;gt;16.04 столкнулся с тем что старый upstart конфиг от Zimbra нормально не встает.&lt;/div&gt;&lt;div&gt;Пришлось переписать на SystemD сервис.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Проблема выложенного  на &lt;a href=&quot;https://github.com/Zimbra-Community/zimbra-tools/blob/master/zimbra.service&quot;&gt;github&lt;/a&gt; в том, что не стартует сервис logger.&lt;/div&gt;&lt;div&gt;Проблема изза того, что при старте генерится perl класс, который использует внутренние пакеты Zimbra, на которые в переменных нет ссылки.&lt;/div&gt;&lt;div&gt;Решается это подгрузкой переменных среды.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче выкладываю рабочий результат. Пользуйте.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;[Unit]&lt;/div&gt;&lt;div&gt;Description=Zimbra Collaboration Suite&lt;/div&gt;&lt;div&gt;After=network.target remote-fs.target time-sync.target syslog.target&lt;/div&gt;&lt;div&gt;Conflicts=sendmail.service exim.service postfix.service&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Service]&lt;/div&gt;&lt;div&gt;Type=forking&lt;/div&gt;&lt;div&gt;User=zimbra&lt;/div&gt;&lt;div&gt;Group=zimbra&lt;/div&gt;&lt;div&gt;ExecStart=/bin/bash -c &amp;quot;. /opt/zimbra/.bashrc &amp;amp;&amp;amp; /opt/zimbra/bin/zmcontrol start&amp;quot;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ExecStop=/bin/bash -c &amp;quot;. /opt/zimbra/.bashrc &amp;amp;&amp;amp; /opt/zimbra/bin/zmcontrol stop&amp;quot;&lt;/div&gt;&lt;div&gt;ExecReload=/bin/bash -c &amp;quot;. /opt/zimbra/.bashrc &amp;amp;&amp;amp; /opt/zimbra/bin/zmcontrol restart&amp;quot;&lt;/div&gt;&lt;div&gt;TimeoutSec=500&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;[Install]&lt;/div&gt;&lt;div&gt;WantedBy=multi-user.target&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/3507653461807420221/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2017/01/zimbra-ubuntu-1604.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/3507653461807420221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/3507653461807420221'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2017/01/zimbra-ubuntu-1604.html' title='Zimbra и Ubuntu 16.04'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-6167913789006689377</id><published>2017-01-12T08:45:00.001+03:00</published><updated>2017-01-12T08:45:41.864+03:00</updated><title type='text'>Такие программисты</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Не выдержал... Как же меня бомбит от таких &lt;a href=&quot;https://habrahabr.ru/company/mindbox/blog/319156/&quot;&gt;постов&lt;/a&gt; на нормальном ресурсе Habrahabr.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Начну пожалуй &lt;/div&gt;&lt;div&gt;1. &amp;quot;Проблема — «непоследовательное» наследование&amp;quot; - это не проблема. Проблема в коде, который просто недостоин существования в 2017 году. Научитесь писать модульно и вы забудете об этом навсегда.&lt;/div&gt;&lt;div&gt;   &amp;quot;При настройках студии &amp;quot;по умолчанию&amp;quot; важен порядок подключения зависимых скриптов&amp;quot; - не умеете готовить не пользуйтесь.&lt;br&gt;&lt;/div&gt;&lt;div&gt;   Если для сборки проекта используете средство интегрируемое, через костыль (а плагин - это костыль), то как бы может быть разобраться как средство работает в своей среде и насколько ему начхать на ваши Solution и Project в терминах Visual Studio.&lt;/div&gt;&lt;div&gt;   Используйте хотя бы paths в tsconfig.json для маппинга проектов.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2. &amp;quot;Проблема — глобальные переменные&amp;quot; - проблема в руках. Никто в 2017 году не использует глобальные переменные. А если ваш проект экспортирует, то это не должно быть проблемой.&lt;/div&gt;&lt;div&gt;3. &amp;quot;Обратите внимание на длинные относительные пути. Они тут нарочно, чтобы показать, что такое случается&amp;quot; - случается, если используешь не модульную систему. И более скажу, использование регистрозависимых путей может привести к веселым последствиям )) особенно когда будешь собирать под другой системой )&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;4. &amp;quot;Переписать весь наш код на использование импортов за один подход не представляется возможным. &amp;quot; - сколько не оттягивай процесс, все равно вернешься.&lt;/div&gt;&lt;div&gt;5. Интегрирование чего то куда то ради интегрирования это бред. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/6167913789006689377/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2017/01/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6167913789006689377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6167913789006689377'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2017/01/blog-post.html' title='Такие программисты'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-6951949070314797823</id><published>2014-12-15T14:34:00.000+03:00</published><updated>2014-12-15T14:35:05.748+03:00</updated><title type='text'>Windows Phone путь в никуда.</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;По сути работы разрабатываю приложения для мобильных устройств.&lt;div&gt;Все ничего но вот с Windows Phone изначально какие-то грабли.&lt;div class=&quot;gmail_signature&quot;&gt;&lt;div dir=&quot;ltr&quot;&gt;&lt;/div&gt;&lt;/div&gt;  &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Я даже не грешу на встроенный браузер, который на десктопе отстает на круг от своих конкурентов, так на мобильных он отстает на целых два.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ну да ладно.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ждал обновления до Windows 8.1. Так даже тут Microsoft наебал. Ладно что оно пришло с полугодовым опозданием, так и тут оказалось, что приложение в телефоне это IE 11, а вот WebView - это IE 10.&lt;/div&gt;&lt;div&gt;Ну насколько надо любить садо мазо, чтобы в одном устройстве было 2 версии IE?&lt;/div&gt;&lt;div&gt;Неудивительно что вся платформа работает соответственно учитывая тот факт, что IE всю жизнь являлся неотъемлемой частью платформы, что на десктопе, что на мобильных.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ладно поехали далее... XapDeploy работает через раз, то выкидывает ошибку то еще что.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Но еще интереснее феерическое ограничение на 2!!!! приложения от разработчика, то есть если ты работаешь с несколькими продуктами то тебе придется постоянно что нить удалять из телефона иначе оно туда не зальется.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Но перед тем как работать с утройством его нужно еще ЗАРЕГИСТРИРОВАТЬ, причем эта регистрация периодически слетает и её нужно повторять.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Еще интереснее выглядит тот факт, что регистрация не пройдет, если на компе и устройстве разные часовые пояса, хотя в GMT время верное, вот это вообще ЧТО?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче платформа оставляет о себе ничего кроме негатива, даже от iPhone с его привязкой к MacOS как средству разработки я не испытываю такого негатива как к этому поделию от Microsoft.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче очередной провал в мобильном сегменте, а ведь в свое время я фанател от Windows Mobile.&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/6951949070314797823/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2014/12/windows-phone.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6951949070314797823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6951949070314797823'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2014/12/windows-phone.html' title='Windows Phone путь в никуда.'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-8858648075085473354</id><published>2014-09-25T13:07:00.001+04:00</published><updated>2014-09-25T13:07:39.765+04:00</updated><title type='text'>Небулайзер? Только меш!</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Дошло у меня дело до покупки небулайзера.&lt;div dir=&quot;ltr&quot;&gt;&lt;/div&gt;  &lt;div&gt;Ребенку врач посоветовал от кашля. Давно думали об этом и даже как то брали у знакомых.&lt;/div&gt;&lt;div&gt;Тут решили все таки купить себе, а то как то напрягает просить у других.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Заказал на Ozon.ru так как цена такая же как везде, зато скидка + доставка по-быстрее.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Ну а пока ждать доставки решили на этот период попросить у знакомых, все таки ребенок то болеет и как бы ему ждать смысла нет.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;У знакомых обычный компрессионный небулайзер, ничего сверхестесственного.&lt;/div&gt;&lt;div&gt;С моей точки зрения практично и просто. Мыть элементарно, ухода особого не требует.&lt;/div&gt;&lt;div&gt;Сели, навели лекарство, включили. Ну гудеть я думал будет сильнее, но в принципе не напрягает. Ребенок хоть и посидел немного, но особо его не полюбил, поэтому чтобы лекарство не пропадало решил сам подышать и потом понял почему ребенок шарахнулся от него.&lt;/div&gt;&lt;div&gt;Хоть и смысл любого небулайзера в том, чтобы сделать аэрозоль, но делают они его по разному. Что до компрессионного, то тут аэрозоль делается под воздействием сжатого воздуха. Хоть воздух и подается не прямо в рот, но отраженная струя воздуха имеет место, что я на себе и ощутил, когда после этого 3 дня ходил с ощущением как будто сутки не пил и в горле все пересохло, хотя кашлять особо я и не кашлял до этого, то тут тупо от сушняка подкашливал.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Наконец, приехал мой заказанный ультразвуковой меш-небулайзер. Компактен, бесшумен и нет того эффекта струи воздуха. Ребенок сам взял в руки и ходил дымил с ним по комнате, конечно полный цикл он не продышал, но потом еще стоял просто держа в руках и вдыхал частично струю без маски, которую я снял.&lt;/div&gt;&lt;div&gt;Да, такая вещь требует больше осторожности и ухода, но и преимущества есть. Главное что дышишь просто аэрозолем естественным путем, а не струей воздуха с частицами. Работает от батареек (для противников можно купить аккумуляторы обычные батарейки ну или вообще сетевой блок), поэтому не привязан к месту. Чистка конечно после каждого использования требуется и в принципе в любом небулайзере необходима, ведь пользуется им обычно больной человек, а как лечиться, если там будут оставаться микробы с предыдущего раза. Главное в таких небулайзерах не касаться меш-сетки, ну и хранить бережно.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Собственно меш-небулайзеры стоят дороже, чем компрессионные (от 3000 против 1500-2500 за компрессионные), но они и стоят того.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Перед покупкой рекомендую почитать отзывы о конкретной модели, а также уточнить наличие в городе сервисного центра, так как меш-сетка хоть и долговечна при должном уходе, но все же является расходным материалом.&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/8858648075085473354/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2014/09/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/8858648075085473354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/8858648075085473354'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2014/09/blog-post.html' title='Небулайзер? Только меш!'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-1800898980961953730</id><published>2014-05-29T13:44:00.001+04:00</published><updated>2014-05-29T13:44:30.890+04:00</updated><title type='text'>Цирк должен оставаться &quot;Цирком&quot;</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;В организации под названием &amp;quot; Кировский государственный цирк&amp;quot; ко всему относятся с юмором, даже к клиентам.&lt;div dir=&quot;ltr&quot;&gt;&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Если театр начинается с &amp;quot;вешалки&amp;quot;, то цирк в Кирове начинается с &amp;quot;цирка&amp;quot;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;В кои то веки вы собрались в цирк, не потому может кто там есть на что посмотреть, а просто ну надо ребенку впечатлений хоть каких-то, так как современное цирковое представление это 20% животных, 20% укуренных клоунов (которые даже ребенка не рассмешат, куда уж до взрослого), и 106% танцевальной и прочей хореографической фигни (ну чтобы соблюсти эпические 146%)&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Заходим на сайт &lt;a href=&quot;http://circuskirov.ru&quot;&gt;circuskirov.ru&lt;/a&gt;, дизайн фиг с ним (цирк же все таки), но когда пытаешься заказать билеты начинается фееричный пиздец. Я опущу удобство чисто дизайнерское типа чебоксов на схеме цирка и прочее... Начнем с основного, что выдает что у цирка нет и 10000руб. на нормального программиста и немного времени на оформление договора с банком.&lt;/div&gt;    &lt;div&gt;Бронируем билеты. И что выдает система? Выдает что вы можете оплатить билеты переводом &lt;b&gt;частному лицу&lt;/b&gt; на банковскую карту (указан номер и срок действия... странно что CVC2 не указали, ну и лицо на которое оформлена) по сбербанку... ну куда уж легальный платеж. так только совместные закупки работают.&lt;/div&gt;    &lt;div&gt;После этого я должен &lt;b&gt;отзвониться&lt;/b&gt; на мобильный номер, чтобы сообщить а собственно за что пришли деньги. Занавес.&lt;/div&gt;&lt;div&gt;Самое веселое, что номер заказа система не сообщает. Оно приходит &lt;b&gt;на почту&lt;/b&gt;, о чем пользователь наверное должен догадаться. Ну и конечно его сложно вывести сразу в той фееричной херне что выводят после заказа:&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;Ваш заказ принят. Билеты необходимо оплатить в течение 48 часов с момента заказа на карту Сбербанка переводом частному лицу в любом отделении Сбербанка или через систему Сбербанк ОнЛ@йн, (номер карты: xxxxxxxxxxxxxxxxxx, (18 цифр) срок действия до: xx/xxxx (включительно)). Если заказ не оплачен вовремя, то он автоматически аннулируется, билеты поступают в продажу. Все неоплаченные брони независимо от момента заказа снимаются за 24 часа до начала мероприятия. После перечисления оплаты Вам необходимо сразу же сообщить об этом по телефону: 8-963-xxx-xx-xx. Билеты можно получить перед мероприятием в кассе продажи забронированных билетов Кировского цирка, назвав свою фамилию, номер заказа и код, который сообщит Вам наш администратор после оплаты заказа. Данная информация продублирована на Вашу электронную почту.&lt;/i&gt;&lt;br&gt;    &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Пометка о сроке действия &amp;quot;включительно&amp;quot; очень облегчает перевод, особенно людям не имеющих с счастью своему никаких отношений с Сбербанком.&lt;/div&gt;&lt;div&gt;Ну вот что сложно было нанять не школьника за еду, а программиста за деньги, чтобы интегрировать онлайн платежную систему и сделать жизнь посетителей хоть чуточку проще.&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче дальше веселее... Оказывается можно оплатить в кассе. Приходим в кассу. Их там оказывается две. Причем та которая выдает брони закрыта и кассир вызывается по звонку... естественно никакого безнала, только нал.&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче совок он и везде совок, как бы не пытались шагать со временем в ногу... нужно вначале привести в порядок головы.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/1800898980961953730/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2014/05/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/1800898980961953730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/1800898980961953730'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2014/05/blog-post.html' title='Цирк должен оставаться &quot;Цирком&quot;'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-6714542498544521218</id><published>2013-12-02T10:44:00.001+04:00</published><updated>2013-12-02T10:56:51.054+04:00</updated><title type='text'>Эпопея с продуктом за который пытаются брать деньги</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
&lt;div&gt;
По работе встала &quot;необходимость&quot; контролировать почтовую переписку.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Так как внешней почтой пользуются немногие доверенные, а все остальные пользуются корпоративной было решено искать шлюзовое решение без монстровидных агентов на каждом устройстве.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Вроде нашли продукт продаваемый UserGate.&lt;/div&gt;
&lt;div&gt;
Собственно вот описание&amp;nbsp;&lt;a href=&quot;http://usergate.ru/products/gatewall_mail_security/&quot;&gt;http://usergate.ru/products/gatewall_mail_security/&lt;/a&gt;.&lt;/div&gt;
&lt;div&gt;
Понятно что тут подписка, но стоит дешевле и по управляемости получше чем многие конкуренты, которые на деле вообще в этом режиме не умеют перехватывать почту в шлюзе, хотя не понимаю, что в этом сложного?&lt;/div&gt;
&lt;div&gt;
Перехватывать почту в шлюзе проще некуда. Нужно реализовать бородатый SMTP протокол.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ну ладно. Сказано сделано. Поставили, тестим.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Вроде на тексте отрабатывает нормально. Шлем вложения.&lt;/div&gt;
&lt;div&gt;
Оказалось, что файл docx не отработал.&lt;/div&gt;
&lt;div&gt;
С этого момента началось общение с техподдержкой, которое продолжалось почти 5 месяцев в надежде на то, что мы что-то делаем не так.&lt;/div&gt;
&lt;div&gt;
Ну ладно... в начале оказалось что они не поддерживают docx. зато работают с odt.&lt;/div&gt;
&lt;div&gt;
Ну думаю, ведь docx это архив. Наверное и архивы не смотрят. Ну да.. оказалось так.&lt;/div&gt;
&lt;div&gt;
Общение с ТП навело на ExtensionPack. Который по сути является набором команд выполняемых для файлов с определенным расширением.&lt;/div&gt;
&lt;div&gt;
За все время мне так и не смогли довести его до ума.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Результат.&lt;/div&gt;
&lt;div&gt;
Продукт НЕРАБОЧИЙ. С хуя ли я должен платить за него деньги? Да и вообще не понимаю тех кто его купил.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Список НЕРАБОЧИХ фич продукта:&lt;/div&gt;
&lt;div&gt;
1. Тип вложения не детектится: авторы наивно полагаются на сознательность отправителя.&lt;/div&gt;
&lt;div&gt;
Переименуй файл zip в doc и все пройдет как по маслу, потому что все фильтры отработают в FAIL. а блокировать почту, где не отработал какой то фильтр вообще бред.&lt;/div&gt;
&lt;div&gt;
2. Раз тип вложения не детектится, то смысл дальнейшей обработки сводится к нулю&lt;/div&gt;
&lt;div&gt;
3. Поддержка архивов нулевая.&lt;br /&gt;
4. Поддержка форматов чуть больше чем нулевая. Даже Office 2007 и выше полностью не поддерживаются. ExtensionPack - это напильник, который не решит фундаментальных проблем.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Последний ответ ТП:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Приветствую!&lt;/div&gt;
&lt;div&gt;
0. Извиняюсь за задержку с ответом.&lt;/div&gt;
&lt;div&gt;
1. Надо поправить исполняемую строку, и все будет работать.&lt;/div&gt;
&lt;div&gt;
2. Это недокументированные опции и поэтому фактически разработчик сказал мне тестируй сам, файлы бери там, и коммандную строку настраивай сам.&lt;/div&gt;
&lt;div&gt;
3. Сейчас Mail Security реализуется на новой платформе, под Linux. Пока говорить о сроках рано, но решение явно будет получше текущего в плане функций и управляемости. Вобщем если останутся ещё вопросы, пишите. Постараюсь завтра ответить.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Короче не хватает у них человека, который мыслит как злоумышленник.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Собственно очередной говно-проект очередной говноконторы.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Сколько раз пытался пользоваться например Proxy от Usergate столько же раз плевался и сносил его к хуям, ибо в этой конторе походу все сделано на отъебись.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/6714542498544521218/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2013/12/blog-post.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6714542498544521218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6714542498544521218'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2013/12/blog-post.html' title='Эпопея с продуктом за который пытаются брать деньги'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-5414251555323183952</id><published>2012-10-01T14:33:00.001+04:00</published><updated>2012-10-01T14:33:27.406+04:00</updated><title type='text'>PHP - 10 лет - одна печаль.</title><content type='html'>&lt;div&gt;Прошло уже 10 лет с тех пор как я начал пользоваться языком PHP, с тех времен много воды утекло, пишу уже частенько на других языках, но есть и старые проекты.&lt;br clear=&quot;all&quot;&gt;&lt;/div&gt;&lt;div&gt;Понадобилось старый проект перенести на юникод в связи с переносом на linux. Короче начался пипец.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1. База сконвертирована в UTF-8 довольно просто и быстро, единственно отдельно пришлось обрабатывать таблицу с бинарными данными, но это мелочи.&lt;br&gt;&lt;/div&gt;&lt;div&gt;2. Файлы PHP и прочее были быстро переведены в UTF-8 и почищены от \r. iconv и perl тут как бы все сделали.&lt;/div&gt;  &lt;div&gt;3. Началось безобразие:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;при обращении к строке по [] естественно отдавался первый байт маркера юникода. пездец приехали... с чего баня то упала? при том что сам интерпретатор работает прекрасно с UTF8 файлами.&lt;br&gt;  &lt;/li&gt;&lt;li&gt;ну и прочее... strlen и далее... короче все встало колом.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;И если функции strlen и прочие можно завернуть через mbstring.func_overload то остальное, как например ucfirst и далее просто пездец&lt;/div&gt;&lt;div&gt;  Благо сайт был более менее по божески написан и я смог все завернуть через родные mb_* функции и все заработало. но было убито полсмены.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Из найденного.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ucwords, strtolower,strtoupper - &amp;gt; mb_convert_case&lt;/div&gt;  &lt;div&gt;ucfirst -&amp;gt; самопал, ибо нет стандартного&lt;/div&gt;&lt;div&gt;[*] -&amp;gt; самопал&lt;/div&gt;&lt;div&gt;serialize&amp;lt;-&amp;gt;unserialize - тоже костыль, ибо мне непонятно нахера в строке считать байты, если строка юникодовая.для бинарных данных я все понимаю, но если это обычная строка???.&lt;/div&gt;  &lt;div&gt;preg_* - модификатор u + \w (только английские)  [а-я] - русские ну или класс \p{L} - для тупо буквы.(если нужны цифры то \d)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче 10 лет, и никакого сдвига в лучшую сторону.&lt;/div&gt;&lt;div&gt;&lt;br&gt;  &lt;/div&gt;&lt;div&gt;Вопрос разработчикам: Если внутренняя кодировка UTF-8 (так как сами файлы UTF-8), что за бред использовать для работы со строками стороннее расширение?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Короче вывод. Если вы собрались писать нормальное юникод приложение, то не связывайтесь с PHP. он застыл на этапе 2002 года, а вернее на версии 4.2 + немного классов из 5.&lt;/div&gt;  &lt;div&gt;Мое мнение. Нужно бросать что есть и разрабатывать с ноля чистую адекватную версию, потому что поддерживая старое говно расти дальше некуда.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Microsoft смог вовремя отказаться от 1 фреймворка, просчитал ошибки и выстроил замечательный второй (до сих пор не измененный сильно в основе), который не поддерживал старое говно... Здесь необходим такой же путь. Эволюция ни к чему не приведет. Только к латанию одних и тех же дыр от года к году.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt; </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/5414251555323183952/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2012/10/php-10.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5414251555323183952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/5414251555323183952'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2012/10/php-10.html' title='PHP - 10 лет - одна печаль.'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6575557278453015496.post-6934166216561933851</id><published>2012-09-14T16:00:00.001+04:00</published><updated>2012-09-14T16:00:31.641+04:00</updated><title type='text'>Zimbra - лучшее из бесплатного для почты</title><content type='html'>&lt;strong&gt;Не&lt;/strong&gt; так давно стала доступна 8 версия сего продукта. Встала задача переноса этого хозяйства с версии 7.2 ubuntu 10.04 до версии 8 ubuntu 12.04. Разумных руководств для перехода и обновления я не нашел, что есть из них, то тупо им следуя можно потерять все к черту.&lt;br&gt;  Но перейти очень хотелось... так как на старой LTS приходилось сидеть с неродным ядром для поддержки 3Тб винтов, иначе видала только 2.&lt;br&gt;&lt;br&gt;Итак мое руководство по Upgrade Zimbra from 7.2 on Ubuntu 10.04 to 8.0 on Ubuntu 12.04.&lt;br&gt;  Проверено работает.&lt;br&gt;Итак.&lt;br&gt;1. Останавливаем зимбру&lt;br&gt;su zimbra -&lt;br&gt;zmcontrol stop&lt;br&gt;exit&lt;br&gt;2. Делаем архив папки /opt/zimbra ну или тупо копию (у меня хранилище отдельно, поэтому это заняло ~1.5Г)&lt;br&gt;Хранилище бекапить не особо нужно, но как бы советовал. У меня оно ~180Г поэтому нервы пошаливали делать дальше без бекапа.&lt;br&gt;  3. Обновляем до версии 8.0 для Ubuntu 10.04. (./install.sh)&lt;br&gt;4. Снова останавливаем.&lt;br&gt;5. Снова снимаем копию на всякий случай (естественно в другое место а не поверх).&lt;br&gt;6. Удаляем Zimbra к чертям (./install.sh -u)&lt;br&gt;  До этого пользовались первым дистрибутивом, который для Ubuntu 10.04, больше он нам не понадобится.&lt;br&gt;7. Обновляем систему (do-release-upgrade)&lt;br&gt;8. Устанавливаем Zimbra - уже новую версию для 12.04. Конфигурация по умолчанию&lt;br&gt;  9. Останавливаем её.&lt;br&gt;10. Восстанавливаем конфигурацию из сохраненной копии обновленной 8.0 версии&lt;br&gt;следующие папки копируем поверх, для чистоты можно их в установленной почистить, чтобы лишнего не было&lt;br&gt;.&lt;strong&gt;ssh&lt;/strong&gt;&lt;br&gt;  &lt;strong&gt;conf&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;data&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;db&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;store&lt;/strong&gt; и &lt;strong&gt;index&lt;/strong&gt; - для тех у кого хранилище находится внутри установки&lt;br&gt;&lt;strong&gt;jetty-distribution-7.6.2.z4/etc&lt;/strong&gt; - иначе не подцепится хранилище&lt;br&gt;  &lt;strong&gt;log&lt;/strong&gt; - по желанию&lt;br&gt;&lt;strong&gt;logger&lt;/strong&gt;&lt;br&gt;не забудьте восстановить правки в postfix/conf/*.cf если вы их производили&lt;br&gt;&lt;strong&gt;zmstat &lt;/strong&gt;- для восстановления статистики&lt;br&gt;11. запустить от root &lt;strong&gt;/opt/zimbra/libexec/zmfixperms&lt;/strong&gt; для простановки разрешений на файлы&lt;br&gt;  12. запустить сервер (zmcontrol start)&lt;br&gt;Все должно работать.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLZXtbVzhMo5x0La1DJs-3Zw-zS9oBNk2KaKvaJ5qAd71aPD9zErNYbzIeVo5ywBJaZB8G4HiAebYR-1T8ZeJr4BR5n1rhJbGdPm0p9WYyqq08bSusITh1rkxkO0tYqZ3ZY3HVWigGN-a4/s1600/zimbra-731642.png&quot;&gt;&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLZXtbVzhMo5x0La1DJs-3Zw-zS9oBNk2KaKvaJ5qAd71aPD9zErNYbzIeVo5ywBJaZB8G4HiAebYR-1T8ZeJr4BR5n1rhJbGdPm0p9WYyqq08bSusITh1rkxkO0tYqZ3ZY3HVWigGN-a4/s320/zimbra-731642.png&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5788001148877562498&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Ну и отдельно для тех, кому критичен сертификат сервисов.&lt;br&gt; нужно заменить папку ssl/zimbra из самого первого архива, так как сертификат в процессе обновления заменяется к черту.&lt;br&gt; после этого нужно выполнить zmcertmgr deploy self, чтобы сертификаты были прописаны в конфигурацию. Ну и рестартануть сервер для порядка и успокоения.&lt;br&gt;&lt;br&gt;Новый интерфейс это действительно шаг вперед. Все Exchange и Zarafa нервно курят в сторонке.&lt;br&gt;  Не говоря уже про количество функций.&lt;br&gt;От этого продукта у меня только положительные эмоции... еще бы сделали ограничение по логину с айпишников, цены бы не было.. Хотя и так лучшее, что есть.&lt;br&gt;&lt;br&gt;Спасибо за внимание. </content><link rel='replies' type='application/atom+xml' href='http://delagen.blogspot.com/feeds/6934166216561933851/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://delagen.blogspot.com/2012/09/zimbra.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6934166216561933851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6575557278453015496/posts/default/6934166216561933851'/><link rel='alternate' type='text/html' href='http://delagen.blogspot.com/2012/09/zimbra.html' title='Zimbra - лучшее из бесплатного для почты'/><author><name>Delagen</name><uri>http://www.blogger.com/profile/08618895460135218558</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLZXtbVzhMo5x0La1DJs-3Zw-zS9oBNk2KaKvaJ5qAd71aPD9zErNYbzIeVo5ywBJaZB8G4HiAebYR-1T8ZeJr4BR5n1rhJbGdPm0p9WYyqq08bSusITh1rkxkO0tYqZ3ZY3HVWigGN-a4/s72-c/zimbra-731642.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>