• Об одном недостатке VK API вслух

      Vkontakte Logo

      Доброго времени суток, уважаемые жители Хабра!

      Начну я с того, что, в моем понимании, Хабр — это чудовищное по своей мощности оружие. Не в смысле того, что им можно кого-то убить. Конечно, нет. Просто он дает самым обычным разработчикам возможность поделиться своими мыслями с потрясающе широкой аудиторией. Причем не имеет особого значения, о чем идет речь. Будь то бережно создаваемый в последние полгода “на коленке” собственный проект или новость о новинках от Google и Apple — все равно. Вас услышат, потому что здесь все равны перед кармой и рейтингом, у каждого есть право слова и голоса. Демократия во всей ее красоте да и только. Но, как и любым оружием, Хабром нужно пользоваться крайне аккуратно. Иначе отдача замучает =)

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

      Внимание! Желающие обсудить последние события из жизни Павла Дурова, ФСБ или знакомых школьников! Прошу вас, ради всего ценного, что есть в вашей жизни, не нажимайте на ссылку “Читать далее”! Я бы очень хотел, чтобы этот пост достиг своей цели, а скандальность — последнее, что для этого нужно.

      Читать дальше →
    • Пять причин, по которым следует использовать Apache Wicket

      Apache Wicket - это фреймворк для веб-разработки на Java. Я чувствую, что ему не уделяют столько внимания, сколько он того заслуживает. Я профессионально использую Wicket для реальных проектов последние 6 лет и мне это нравится! В этом посте давайте рассмотрим пять причин, по которым вам стоит подумать об его использовании.

      Читать далее
    • Свой сервис отложенного постинга и почти без кода

      • Tutorial


      Если вы владеете Telegram-каналом (или несколькими), раскрученным аккаунтом в Instagram или любой другой социальной сети, то уже наверняка задавались вопросом: А как мне планировать посты заранее? Существует очень много разных сервисов, которые решают эту задачу. Но по тем или иным причинам они могут не подходить: где-то цена большая, где-то функционал беден, а где-то вообще страшно оставлять логин-пароль от своего раскрученного аккаунта. Сегодня я расскажу и покажу как на основе нашей платформы для разработки бизнес приложений с открытым кодом Orienteer сделать свой собственный сервис буквально за 60 минут! Заинтересовал? Проваливаемся под кат.
      Читать дальше →
    • Знакомство с Vuecket

      • Tutorial


      English Version
      Vuecket — веб-фреймворк, интегрирующий VueJS с клиентской стороны и Apache Wicket с серверной. Он берет все самое лучшее от обоих и позволяет разрабатывать full-stack приложения еще быстрее и проще. Конечно, это всё громкие слова, ведь Vuecket'у на данный момент (Август 2020) меньше месяца, и он не прошел ещё крещение «огнем и кровью» продакшн серверов. Но он уже включил в себя всё самое лучшее из наработанного нами при разработке нашего ключевого Open Source продукта Orienteer(платформа для быстрой разработки бизнес приложений). И именно из-за молодого возраста Vuecket'у нужна ваша помощь: поделитесь, пожалуйста, тем, что вам понравилось, что не очень, где нужна доработка и т.д.

      Основные принципы, которыми мы руководствуемся при построении Vuecket'а:

      1. Быть декларативным — не императивным. Vuecket не диктует какие-то специальные требования к коду. Он может быть приложен достаточно быстро и легко к уже существующим Vue.JS или Apache Wicket проектам.
      2. Следовать принципу Парето. Vuecket должен обеспечивать 80% нужного функционала из коробки, но для оставшихся 20% должны быть хорошие и удобные точки расширения.

      Легко заметить, что эти принципы также применимы и к Vue.JS, и к Apache Wicket.

      Итак, как именно мы будем знакомиться с Vuecket? Предлагаю сделать чат/гостевую доску с поддержкой Markdown. Не буду сильно томить: законченное приложение здесь, а код здесь.
      Читать дальше →
    • Реализация HFT роботов на устройствах CEPappliance

        Мы уже 2 года плотно общаемся с HFT трейдерами и разработчиками решений для HFT торговли. И испытываем некоторую неловкость от того, что никто в этой среде открыто не рассказывает о своих технологических успехах. Так как мы делаем устройства CEPappliance на основе FPGA, применимые в том числе для HFT торговли, мы неустанно интересуемся кто и как использует FPGA в этой сфере. Складывается навязчивое впечатление, что FPGA в HFT торговле, как секс у подростков — все о них говорят, но мало кто ими занимается, да еще и успешно.
        Читать дальше →
      • Заблуждения программистов относительно времени

        • Translation
        За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

        На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
        Читать дальше →
      • Игры, в которых нужно писать код: Grid Garden, Elevator Saga и другие


          В детстве мы постигаем премудрости жизни через игру. Это важнейший элемент развития личности, социальных навыков, получения знаний об окружающем мире. Игры — хороший «контейнер» для донесения и закрепления каких-либо знаний. Яркий пример — игры, в которых нужно писать код. Наверняка все вы о них слышали, а в некоторые даже играли. Их первичная задача — развлечь людей, уже владеющих навыками программирования, но они могут использоваться и для обучения. Эти игры помогут освежить свои знания по тому или иному языку, отвлечься и заняться более простой алгоритмической задачей.

          Читать дальше →
        • Стандарты и шаблоны для ТЗ на разработку ПО

            Введение


            Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…

            И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):

            • ГОСТ 34
            • ГОСТ 19
            • IEEE STD 830-1998
            • ISO/IEC/ IEEE 29148-2011
            • RUP
            • SWEBOK, BABOK и пр.
            Читать дальше →
          • Java и Docker: это должен знать каждый

            • Translation
            Многие разработчики знают, или должны знать, что Java-процессы, исполняемые внутри контейнеров Linux (среди них — docker, rkt, runC, lxcfs, и другие), ведут себя не так, как ожидается. Происходит это тогда, когда механизму JVM ergonomics позволяют самостоятельно задавать параметры сборщика мусора и компилятора, управлять размером кучи. Когда Java-приложение запускают без ключа, указывающего на необходимость настройки параметров, скажем, командой java -jar myapplication-fat.jar, JVM самостоятельно настроит некоторые параметры, стремясь обеспечить наилучшую производительность приложения.

            В этом материале мы поговорим о том, что необходимо знать разработчику перед тем, как он займётся упаковкой своих приложений, написанных на Java, в контейнеры Linux.
            Читать дальше →
          • Orienteer: обзор платформы и обновлений последнего релиза

              После нашей первой статьи о том, как из Orienteer и docker сделать BaaS, мы обещали рассказать, что такое Orienteer, кому и как он может быть полезен. А тут еще и повод есть хороший: мы зарелизили версию 1.2 нашей платформы.

              Версия 1.2 полностью поддерживает установку с помощью docker-образов, есть интеграция с процессным движком Camunda BPM, встроен интеграционный фреймворк Apache Camel, с помощью удалённого логирования ошибок стало проще получать диагностическую информацию о состоянии системы и многое другое.



              Итак, обо всём этом коротко и по порядку под катом. Но краткость не всегда полезна, так что, дорогой читатель, есть одна просьба. Если мы были излишне кратки, а вы хотите узнать о чем-то более подробно — пишите в комментариях!

              Ах, да — в статье вы найдете маленький подарок читателям Хабрахабр.
              Читать дальше →
            • Настраиваем приватный Docker-репозиторий

              • Tutorial

              Docker одна из горячих тем в разработке. Большинство новых проектов строится именно на Docker. Как минимум, он отлично зарекомендовал себя для распространения ПО, например, наша система поиска по документам Ambar устанавливается с помощью docker-compose.


              В начале работы над Ambar мы использовали публичный docker-репозиторий, но с ростом проекта и появлением enterprise версии мы задумались над созданием собственного приватного репозитория. В данной статье мы поделимся своим опытом развертывания селф-хостед репозитория: пошагово опишем весь процесс, попытаемся обойти все подводные камни.

              Читать дальше →
            • Погодная станция из Arduino и Orienteer

              Под Новый Год ко мне приходит желание разработать что-нибудь нестандартное. В этот раз я решил начать собирать и обрабатывать погодные данные возле своего дома. И, конечно, выбрал Arduino в качестве железа, а вот в качестве хранилища и инструмента просмотра и анализа — упоминавшийся недавно на Хабрахабре конструктор бизнес-приложений Orienteer. Тем что получилось, я поделюсь в этой заметке.


              Читать дальше →
            • Docker swarm mode (режим роя)


                На хабре уже писали про Docker swarm mode (режим роя), который является новой фичей версии 1.12. Данная опция внесла небольшую путаницу в головы тех, кто знаком с отдельно стоящей реализацией Docker Swarm имевшей распространение ранее и не отличавшейся удобством настройки и использования. Однако, после добавления Swarm в коробку с Docker все стало намного проще, очевиднее и функциональнее.

                Подробнее о том, как устроен новый кластер Docker контейнеров с точки зрения пользователя, а также о простом и удобном способе разворачивания сервисов Docker на произвольной инфраструктуре далее под катом.
                Читать дальше →
              • Раскрутка нового агентства на upwork с нуля — личный опыт

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

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

                  Команда состоит из 12 web-разработчиков широкого профиля (full-stack, как говорится).

                  Исходные данные: колоссальный (с моей точки зрения) опыт работы вне upwork, абсолютно нулевой аккаунт на upwork, большое желание продвинуться на этой бирже и неудачная попытка сделать это своими силами: ребята уже пробовали искать там заказы в течение 2х месяцев: у них было за это время 7 интервью, но они не смогли взять ни одного проекта.

                  Мне дали полный карт-бланш и разрешили делать с профилями команды все, что я считаю правильным и рассылать какие угодно отклики, бидиться с любой ценой, лишь бы проекты были по плечу разработчикам. Для себя я однако решила, что не буду искать своим новым товарищам откровенно убыточные проекты, и нижняя планка цены часа будет 30$. От этого принципа мне не пришлось отступать, но … расскажу обо всем по порядку.
                  Читать дальше →
                • Docker, GitLab, бесплатные SSL-сертификаты и другие плюшки современной веб-разработки

                  • Tutorial

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


                  Начинать написание нового материала после столь продолжительного отдыха от этого дела — труднее всего. Но раз цель поставлена — надо идти до конца. Начну немного издалека.


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


                  Под хабракатом вы найдете Quick Start по использованию Docker на уровне, необходимом для решения конкретных задач, обозначенных ниже, без углубления в "дебри" виртуализации и прочих сопутствующих тем. Если вы до сих пор хотите начать успешно использовать эту современную технологию, тем самым значительно упростив целый ряд процессов: от разработки веб-продуктов и до разворачивания и переноса оных под какое-либо современное оборудование — прошу под кат!


                  Opening Illustration - Docker

                  Читать дальше →
                • Свой BaaS c моделированием предметной области, скриптами и многим другим за полчаса

                    Сегодня расскажем и покажем как за полчаса поднять свой Backend as a Service (BaaS) с весьма интересными возможностями.



                    BaaS — это веб-приложение, которое работает в облаке и предоставляет все необходимое для бизнес/мобильных приложений и сайтов (front-end). BaaS как минимум позволяет:

                    • Управлять пользователями и ролями
                    • Моделировать предметную область
                    • Получать доступ к данным через REST
                    • Управлять самими данными (база данных)
                    Читать дальше →
                  • Шпаргалка Java-программиста 6. Список полезных ссылок для Java программиста

                      Добрый день, данная статья о моем opensource pet проекте на github'e useful-java-links, в котором я собрал большое количество ссылок на полезные открытые (и некоторые закрытые) проекты. Этот проект существует на двух языках сразу русском и английском, которые являются полными дубликатами друг друга (кроме отсутствия ссылок на русскоязычные ресурсы в английской версии).


                      image


                      Данный проект — форк такого проекта как awesome-java, плюс добавлены все не мобильные проекты github'a c количеством звезд более 390 (то что описано в этой статье), все проект Apache верхнего уровня, ряд других ссылок, плюс ссылки на русскоязычное видео из этой статьи. В целом, количество полезных ссылок примерно в два раза больше чем в awesome-java. Есть строгая структура разделов, сразу дана информация об лицензиях и возможности использования данной лицензии в закрытом продукте (то есть строгость копилефта и возможность линкования с закрытыми проектами) и количество звезд набранным каждым проектом.


                      Буду очень благодарен за любые исправления и дополнения в данный сборник (добавить можно как в комментариях к статье, так и просто на github'e ). И за помощь в распространении ссылок на данный проект как среди русскоязычных, так и среди англоязычных (так как версия на английском полностью аналогична русской). В этой статье даны все ссылки, однако обновляемая версия все-таки будет на github'e.


                      Читать дальше →
                    • Как правильно внести свою лепту в Open Source проект: простые подсказки

                        Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
                        Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

                        Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

                        Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


                        Читать дальше →
                      • APS-стандарт – использование на примере CMS LiveStreet

                          imageВ 2007-м году компанией SWSoft, ныне Parallels, опубликован новый стандарт средств, для развёртывания веб-приложений на хостинге – APS — Application Packaging Standard: apsstandard.org.
                          APS-формат разработан, чтобы упростить реализацию бизнес-модели Software-as-a-Service (SaaS) для облачных сервис-провайдеров и разработчиков ПО. APS-пакет – упакованное в соответствии с APS-стандартом веб-приложение.
                          В статье — краткий обзор APS-стандарта и описание процесса подготовки и публикации APS-пакета в общедоступном каталоге — на примере APS-пакета CMS Livestreet, выход которого вызвал определённый интерес на Хабре: (Блог LiveStreet CMS).
                          Надеюсь, статья заинтересует разработчиков веб-приложений, сервис-провайдеров и пользователей их услуг.
                          Читать дальше →
                        • Детальный анализ Хабрахабра с помощью языка Wolfram Language (Mathematica)


                            Скачать пост в виде документа Mathematica, который содержит весь код использованный в статье, вместе с дополнительными файлами, можно здесь.

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

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

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

                            Ввиду того, что база данных, построенная в посте, формировалась за некоторое время до публикации, а именно 26 апреля 2015 г., посты, опубликованные на Хабрахабре после этой даты (а также, возможно, новые хабы) в данном посте не рассматривались.
                            Читать дальше →