• Что нам стоит хакатон устроить, или Как мы проводили внутренний хакатон
    +1
    Приветствую сообщество. Хакатон весело и интересно. Но к сожалению крыша провела хакатан только внутри своей команды.
    Провели бы нормальный хакатон. В последнее время таких соревнований в Алматы мало. И в основном делают их гос или рядом с гос компании. И на них обычно задачи ставятся оторванные от реальности.

    Личная просьба. Если когда нибудь захотите провести хакатон на который можно прийти со своей командой.

    Просьба.

    Заранее оповестить народ. Я бы с удовольствием сходил бы на Ваш хакатон и как участник и как зритель.

    p.s.
    Спасибо за Ваш продукт. Мне лично он помог в свое время найти хороший участок. И я от всей души желаю Вам и бизнесу который Вы представляете успехов в начинаниях и продолжениях!!!
  • Новогодний пост добра
    +4
    реклама раза три меня на интересующие статьи выводила и с рег ру познакомила. есть от нее польза и порталу и пользователям. я думаю что на Хабре не много рекламы. а учитывая ее специализированость она часто полезна. лично мое мнение. а так хорошая фишка )))
  • Go быстрее Rust, Mail.Ru Group сделала замеры
    –10
    Расслабьтесь.

    У Go есть преимущества которые пока мало кто может оспорить:
    1. Простота языка. Легко понять как свой код написанный год назад, так и код другого программиста.Т.е. низкий порог входа.Соответственно легче поддерживать проекты. Соответственно низкая стоимость поддержки. (Значит бизнес будет его использовать и далее)
    2. Синтетические тесты это лишь меряние «письками». даже если Go уступает по этим тестам другим языкам, это не значит что он хуже или наоборот лучше. Это лишь означает что где то в каких то задачах он уступает. Никто не может сказать куда придет 2 версия. Все может кардинально поменяться в сторону производительности в нужном синтетическом тесте ))).
  • GeekUniversity — первый в России онлайн-университет с гарантированным трудоустройством
    +1
    Давно пора было что нибудь от ведущих компаний сделать. Респект!
  • Разработка → Казахстан: Как я помогал сдать 100 форму налоговой отчетности. Продолжение 300 форма
    0
    Спасибо за Катю! Неожиданная развязка с М… Захватило…
  • Казахстан: Как я помогал сдать 100 форму налоговой отчетности. Начало 200 форма
    +1
    Спасибо за комментарий Andre_Sk.

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

    В 1С можно сохранить определенный отчет, но когда по предыдущим периодам фактическая ситуация меняется, привезли документы через полгода например, а принимающая сторона их давно подписала, но сами документы попали в компанию намного позже. Вот тогда и наступает ситуация как у моей знакомой. Не известно что сдано, правильно ли сдано и как отразится годовой отчет если предыдущие отчеты требуют корректировок.Казахстанская 1С не может сгенерировать дополнительную отчетность получив информацию с онлайн портала.

    Да и то что я сделал тоже не может.

    Мой код просто объединяет все декларации и из них генерирует сводные отчеты. В 1С храниться информация по текущему состоянию компании из всей имеющейся информации на данный момент времени.В моей системе по текущему состоянию сданной отчетности.
  • Интеграция XML данных — другой путь
    +1
    в Казахстане аналогичная ситуация. У гос. учреждений принято работать на Java и xml.
  • Пример создания одного chrome extension
    0
    Я отказался работать с getElementById() в тот момент когда понял что он выдергивает только одно значение. В теле страницы могут быть несколько элементов с одним id, при парсинге товарных агрегаторов я раз и навсегда отказался от getElementById(), и перешел на querySelector() и querySelectorAll()
    Просто оставлю это здесь. Но, в конце концов, это ваш продукт, поэтому вам принимать окончательное решение в плане выбора способа, мы лишь советуем.


    Насчет скорости доступа я согласен. Быстрее обращение к id. Но дело не в скорости, а в том я для себя решил работать в js c css селекторами. Возможно в каком то другом проекте и потребуется использовать именно getElementById, но пока querySelector.

    Тесты






    Плюс по скринам видно, что миллион обращение к id и к селектору примерно выполняются за 100 и 300 секунд. Для меня не критично в данном проекте ускоряться за счет id.

    Вот здесь Вы не правы. Я создал массив папок из 200 элементов. Потом повесил на каждый элемент по обработчику события. В итоге Страница с действующим классом, начала подвисать при event'ах, а у меня очень даже нормальный ноутбук. И учитывая, что на странице может быть не один экземпляр класса мне пришлось переписать логику так чтобы event'ов было не так много.

    Здесь я имел в виду контекстное меню.
    Напишите, пожалуйста, пример того, как вы вешали слушателей (или дайте ссылку на него) — интересно взглянуть, т.к. у самого есть проект с достаточно большим числом объектов на странице, на каждом из которых висит отдельный слушатель, и пока тормозов и подвисаний замечено не было.


    Вначале я начал писать этот класс и вешать непосредственно на элементы «p» все события. К сожалению первоначальный код не сохранился.

    И еще раз спасибо за критику.
  • Пример создания одного chrome extension
    0
    YuryZakharov, спасибо за комментарий.

    Вот это
    $obj->Русские_буквы

    — зло.
    Можете объяснить, зачем Вам кириллица в именах?
    Вот так, что без этого совсем никуда…
    Если это про «национальную гордость великороссов», то представьте, что вам достался на поддержку китайский проект, а они гордыми оказались…


    Вот смотрите, допустим вы парсите какой нибудь сайт, в его коде элементы различаются по dataset свойствам (к примеру data-auth=«Тиничев Валерий»). Вот именно при обработке таких блоков и возникают не англоязычные имена свойств.
    Или другой пример.
    Вы обрабатываете текст на поиск повторяющихся значений. Намного проще давать key именно часть текста не зависимо от языка. Это лишь при обработке данных.

    «svoistvo»
    вообще промолчу… Чем «property» не угодило? Английского не знаете?
    Javascript изучаете, изучите азы английского заодно. Не трудно и пригодится много где еще.


    property — всем угодило. Но для быстроты и наглядности использовал именно русское слово на латинице.

    Общее впечатление от Вашего подхода — нет структуры, каша какая-то.

    p.p.p.s. Основная задача топика — написать быстро расширение без использования фреймворков. Быстро написать в течении дня, максимум двух. И быстро запустить.

    Уж простите за такую критику.

    Наоборот спасибо Вам за критику, если человек не критиковать он остановиться в развитии. Ведь сам себя любой может простить и понять. )))
  • Пример создания одного chrome extension
    0
    Полностью с Вами согласен.

    Но закон не писан для многих.

    Да и в принципе это не создает никаких проблем если обращаться к id посредством querySelector().
  • Пример создания одного chrome extension
    0
    Да это все влияние Java.

    На досуге начал изучать, и оттуда потянуло.
  • Пример создания одного chrome extension
    0
    Спасибо, перечитал несколько раз заголовок. Понял что к чему прилагается )))
  • Пример создания одного chrome extension
    +1
    Спасибо большое за комментарий.

    — не стоит вызывать getBoundingClientRect() для одного и того же элемента подряд строка за строкой — это добавляет нагрузку, лучше вынести в отдельную переменную первый запуск, а затем уже обращаться к свойствам;
    В классе я так и действовал, нашел лишь одно место где обращался дважды к getBoundingClientRect().

    — обращаться к свойствам объекта можно не только через квадратные скобки, но и через точку;
    Спасибо, что напомнили. Первый мой язык для веба был php. Он показывал ошибку при обращении в stdClass() к элементу имеющему имя на кириллице.Это привело к тому, что я привык в php обращаться к свойствам через скобки. И сказалось на мой стиль программирования в JS.

    Как сейчас состоит дело со свойствами на кирилице







    — document.getElementById('title') сработает быстрее, чем document.querySelector("#title") (так для всех обращений по id) (про window.title молчу, т.к. лучше про него забыть));
    Я отказался работать с getElementById() в тот момент когда понял что он выдергивает только одно значение. В теле страницы могут быть несколько элементов с одним id, при парсинге товарных агрегаторов я раз и навсегда отказался от getElementById(), и перешел на querySelector() и querySelectorAll()

    — для элементов, которые не меняются и к которым часто происходит обращение, лучше завести отдельный объект типа кэша, чтобы каждый раз через селекторы не обращаться (или в вашем случае можно «забиндить» слушателей событий на this, чтобы обращаться к тем же самым созданным div'ам);
    Я не совсем понял о чем тут речь.

    — стили лучше менять с помощью классов — браузер в таком случае применяет сразу весь набор новых стилей, а не строчка за строчкой, каждый раз перерисовывая элемент;
    Так я итак использую классы. Не везде конечно, но там где мне нужно точно переопределить css к элементу. Так как обращение в ccs к id(#) важнее чем обращение к классу элемента(.)

    — код лучше разнести по разным файлам, в зависимости от назначения;
    — стили так же лучше вынести туда, где они должны быть, то есть в css-файлы;
    — честно говоря, не понимаю, для чего вам end.js, лучше его удалить, а так же убрать из манифеста возможность редактировать страницу любого сайта — это вызовет больше доверия у потенциальных пользователей;
    — структура рода [«Мои записки»,0] ведет к ненужной жесткости кода — вам потом понадобиться добавить еще какое-то свойство, придется расширять массив и менять функцию-обработчик, я бы советовал заменить на объект;
    — очень много дублирования кода;
    — вы сравниваете e.keyCode и e.which на одно и то же значение, используйте любой из них (лучше keyCode) и пользуйтесь своим switch по-нормальному на здоровье (если вдруг так уж случилось, что они у вас работают по-разному, то можно воспользоваться конструкциями вида key=e.keyCode||e.which);
    p.p.p.s. Основная задача топика — написать быстро расширение без использования фреймворков. Смысл быстро написать и запустить

    — если появление дополнительных ненужных отступов заставляет вас писать в строку элементы html, то можно убрать шрифт для всей страницы (font-size:0px;), а включить его там, где он непосредственно нужен, чтобы красивее отобразить html-код;
    За этот трюк большое спасибо!!!

    — на каждое нажатие клавиши вы запускаете перебор по всем div'ам — это ужасно — если вы хотите найти следующий (предыдущий) элемент за родителем абзаца, который находится в фокусе, пользуйтесь nextElementSibling /previousElementSibling, с проверкой на существование;
    nextElementSibling /previousElementSibling взял на заметку. Просто забыл про существование это навигации.

    — вместо одного универсального слушателя лучше вешать на каждый элемент свой и отдельно повесить на нажатие по контекстному меню на скрытие;
    Вот здесь Вы не правы. Я создал массив папок из 200 элементов. Потом повесил на каждый элемент по обработчику события. В итоге Страница с действующим классом, начала подвисать при event'ах, а у меня очень даже нормальный ноутбук. И учитывая, что на странице может быть не один экземпляр класса мне пришлось переписать логику так чтобы event'ов было не так много.

    и еще раз большое спасибо за такой развернутый комментарий.
  • Архитектурные решения в системе телефонии «Битрикс24»
    0
    По поводу интеграции с Астериском или текущей телефонией она имеется только на словах и не имеет тех поддержки.
  • Архитектурные решения в системе телефонии «Битрикс24»
    0
    По поводу завышенных тарифов.
    Многие ИП имеют возможность звонить внутри РК на все стационарные телефоны абсолютно бесплатно. Многие операторы предлагают тарифы при предоплате допустим в 400 долларов, звонить внутри РК по нулевой ставке уже крупным компаниям.
    Допустим направление Казахстан Китай, Казахстан Российская Федерация, операторы дают по цене 0,01 доллара. А это основные торговые партнеры РК(95% торгового оборота).
  • Архитектурные решения в системе телефонии «Битрикс24»
    +2
    Классно. Наконец то из Битрикса 24 хоть кто то но отреагирует. А то на все попытки поднять вопросы по телефонии у Ваших хелп десков привычка отписываться ссылками. Какое то у Вас несерьезное отношение к тех поддержке клиентов в этом направлении.

    У компании где я работаю(интегратор одно из направлений телефония), несколько клиентов которые по сути дела отказались от Битрикса24 только по той причине что там не предусмотрена интеграция по открытым стандартам с телефонией. Причем это энтерпрайз клиенты. Каждый из которых имеет штат от 150 офисных сотрудников. Многие из них ушли к «западным» конкурентам. И это за последние полгода. Единственная проблема по которой многие отказываются от Ваших продуктов это полное с Вашей стороны ПРЕНЕБРЕЖЕНИЕ к существующей инфраструктуре компаний. Так же имеется факт что аренда телефонии происходит каким то загадочным и не прозрачным(вполне возможно незаконным) способом отталкивает крупных клиентов от Вашей телефонии. Многие клиенты не хотят да и не будут менять маркетинговую политику связаную с привлечением клиентов только ради интеграции Ваших решений.

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

    В связи с Выше сказанным у меня имеется вопрос:
    Когда Ваша компания услышит своих клиентов и перестанет предлагать единственную возможность интеграции с телефонией через свои карманные компании или партнеров тарифы которых завышены в среднем в 2-10 раз чем по рынку?

    (по поводу незаконного способа предоставления городских телефонных номеров возможно я не прав, но в РФ и Казахстане, для получения городского номера обязательно должны предоставляться документы удостоверяющие личность физ лица или уставные документы компании, это связано с телефонными правонарушениями и уголовной ответственностью владельца телефонного номера. Возможно я здесь не прав, но имея 15 летний стаж по интеграции телефонии, по моему мнению это актуальная информация)
  • Готовимся к собеседованию по PHP: ключевое слово «static»
    0
    спасибо за статью!
  • «Шепот» соседа через chanspy [FreePBX]
    0
    Нормально все. Хабр уже давно стал рассказывать просто о сложном. Пишите больше особенно про фишки. Мало ли что гуру не хотят делиться и смотрят на всех с высока. Добавил в избранное…
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    0
    PaulWeb Спасибо за Ваш комментарий.

    По поводу асинхронности чтения, в ПАМИ есть много проблем так как он заточен под абстрактный малоинтенсивный продакшн. В связи с этим и ответы от астериска приходят в совершенно неудобном формате. В классе режим чтения данных из сокета представлен асинхронно, то есть чтение из сокета может происходить не по мере поступления информации а именно тогда когда требует приложение.
    В следующей части я собираюсь раскрыть потенциал простого Originate-а, с возможностью чтения данных уже из готового массива и с историей по ActionID. Но пока я соберусь походу меня заминусуют =) Видать статья не понравилась сообществу, хотя опрос показывает что тема актуальна, да и количество человек которые добавили статью в избранное тоже заставляет думать что здесь что-то не то.
    На самом деле собрать всю информацию в готовый и классифицированный массив что не так уж и сложно, сложнее бороться с памятью которую жрут демоны. Мы у себя в продуктах нашли решение. Оно связано с применением массивов как динамических объектов, которое также нужно показывать отдельной статьей. Потому что готовый класс ни приведет разработчика к написанию более-менее сложного приложения, пока он не поймет механику класса,.
    Повторюсь, даже в этом классе реализовано «асинхронное» чтение из сокета. Которое не дает зависнуть приложению в случае отсутствия данных на стороне сокета, а просто выбрасывает пустой массив.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –1
    AotD Извините за резкость моих ответов на Ваш комментарий.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    0
    bosha Спасибо за комментарий.

    Да это также можно назвать обычным PHP телнетом.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –1
    AotD еще раз спасибо за Ваши комментарии.
    Отвечу по поводу
    общемировые практики и стандарты


    В Евросоюзе и США имеются «практика и стандарт и даже законы социальной защиты детей» диктующие что в 70% в семья жителей бывших «совков» издеваются (именно издеваются) над детьми, и на основании этого нужно проверять каждую такую семью для защиты детей от родителей. Давайте применим эти же законы и стандарты у себя. У это уже будет нонсенс.

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

    Я конечно немного утрировал, и не во всем это так, но примеры увы вполне из реальности.

    И давайте придем к логическому мнению что:
    И Вы и Я будем применять те стандарты и спецификации которые действительно полезны и необходимы нам, а не кому то там кто сидит в сертифицирующем органе и кто далек от наших потребностей. Если Ваша команда ориентирована на западного клиента и западную сертификацию, то это Ваше право работать по стандартам которые приняты на тех территориях. Но у нас имеются собственные сертификационные центры, которые выпускают собственные стандарты, которые в свою очередь могут легко идти в разрез с американскими или европейскими стандартами.

    И такого понятия как общемировой стандарт или общемировая практика не существует. Также как общемирового сертификационного центра. В каждой стране имеются свои наработки в сертификации. Даже определенное ИСО в каждой стране может быть разным.

    Возьмите даже вроде бы самую большую мировую куммунити — науку.Так даже здесь, нет единых стандартов. Даже теория Дарвина и то идет в разрез с Научным обществом Ватикана, а ведь докторантура Ватикана считается одной из самых сильнейших в мире. Примеров масса. Оглянитесь. Нету мировых стандартов. Есть стандарты которые Вы или Я или группа людей договорилась соблюдать, на определенной территории или в определенном направлении.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –1
    AotD Спасибо еще раз за Ваши комментарии.

    Отвечу по мере способностей =)

    Ну во первых не у всех имеется такой багаж опыта как у Вас. Поэтому я и спрашиваю сообщество стоит ли продолжать или закончить на этом. Ведь эта статья, как бы первая ласточка, которая показывает вариант как можно самим начать работу с АМИ звездочки. Если в ПАМИ есть готовый функционал, это еще не значит что допустим некто, начавший работать с Астером недавно не имея полноценной документации сразу же начнет писать приложение основываясь на ПАМИ. Если статья, ее подача и полезность ее информации не интересует Вас то нет проблем. Я ведь жду что скажет сообщество.

    Поясню почему я начал писать эту статью, когда первый клиент обратился к нам с просьбой связать его CRM систему с Астером, мы пришли к ПАМИ также как и Вы. поюзав данный фреймворк, отдел разработки пришел к выводу что там все сильно запущено. То есть она написана для абстрактной системы которая не может контролировать большие колл центры, реальность вернула нас к началу начал. Пришлось изучить исходники и перерыть гору информации, которой в рунете почти нет.

    По поводу написания софта, да у меня действительно наболело, вот опубликуешь статью на специализированном форуме, вроде движение начинается по статье, но только до прихода модератора, как только модератор появляется статья вместе с аккаунтом исчезает. Поднимать собственные форумы это к сожалению не мое, не хочу тратить свое время на еще одну помойку. Хотя допустим даже эта статья приведет на хабр огромное количество постигающих Астериск из поисковых систем.

    По поводу Аргертинца, ну я же отписался, что ограничен в своем развитии =).

    А во вторых оказывается и нету.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –1
    AotD Спасибо за комментарий. К сожалению статья вышла вчера, а не полтора года назад. По поводу ПАМИ, скажу сразу, я не описал готовое решение, я описал механизм по которому можно работать. И кто сказал, что взяв просто код ПАМИ можно сразу нарисовать колл центр? Особенно когда сама библиотека не документирована для русскоговорящей аудитории, и механизм ее работы даже для англоязычной аудитории не раскрыт? В статье описан механика используя которую любой начинающий(или практикующий) разработчик может понять с чего начать работу. А для небольших приложений так вообще готовый модуль, который просто нужно переработать под свои нужды.

    Если у Вас нет желания про это читать, велком к голосованию.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –1
    RUgaleFF спасибо за комментарий. Поясняю по массиву. Массив проще использовать так как он динамически изменяется. То есть я просто упрощаю продакшн. Декларировать же каждую переменную это хорошо когда в самом начале имеется полное представление по переменным которые будут использованы в конечном коде.
    По поводу PSR-2, мы в нашей команде работаем по переработанной версии регламента, которая упрощает нам работу по чтению кода между разработчиками, что удобно для нас. Ведь регламент принятый для сертификации кода в одном органе может не полностью соответствовать нашим реалиям и потребностям. Здесь подходит «Сколько людей столько и мнений».

    зы: Асинхронность не в потоках, а в варианте чтения из сокета. Пока сокет открыт там нет EOF, поэтому операция чтения может тупо зависнуть пока не дождется полного закрытия сокета или прервется по таймауту. И это всего лишь класс, а не вариант кода с пометкой «следуй моему мнению». Этот класс на простом и доступном языке показывает как можно работать с сокетами, в частности, с Астериск АМИ.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –2
    Ну в начале хотя бы одного художника найти. А там посмотрим.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –2
    kalessil, пока по голосованию на данном этапе интерес имеется. Но надо дождаться результатов хотя бы недельного голосования.

    На гитхаб у меня лично нет желания выкладывать свои или общие наработки. Поясню: я сам плохо разбираюсь в техническом английском, и мне не нравится в международных проекта ненавязчивый регламент вести описание на не родном мне языке. Согласен это ведет к моей ограниченности, но я не хочу чтобы мои мысли были неправильно интерпретированы в связи с моим плохим английским. Ведь даже когда на русском комментируешь тот или иной участок кода, два разных человека могу совершенно по разному это понять. Проще работать с бывшими «совками» есть связующее звено, русский, и найти взаимопонимание становится проще.

    Что то я сам запутался в своем комменте.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –3
    Ребята, Звездочка открытое решение, и я только начал описывать начало начал, зачем меня «минусовать»? С форумов удаляете данную инфу хотя это же все очень просто делается. Любой человек разбирающийся в Астере может себя реализовать и написать собственное API, а затем еще и интегрировать его в приложение. Вы еще и с Хабра удалите эту статью, и вообще станет как в политике Америки, только Американцы и Европейцы имеют право писать СОФТ. А остальные должны лишь рукоплескать их уму. А я татарин, который живет в Казахстане. И я считаю что мы тоже можем реализовать собственную «открытую» обертку для Астера.

    Извините наболело, особенно когда на форумах по астеру мои статьи с фишками для Астера уничтожаются в течении часа. Я даже на хабре пишу на ночь глядя, а вдруг и здесь статью сольют.
  • Пишем обработку Asterisk AMI своими руками. Часть первая: создаем класс на PHP для обращения к звездочке или как сделать php socket клиент своими руками
    –5
    Спасибо HiNeX. Не могу плюсануть моя карма не позволяет.