Рубрика «Программирование» - 213

Java-дайджест за 18 декабря - 1

  • Вышел первый пробный билд JDK 15. Страничка проекта — здесь, но смотреть там пока совершенно нечего.
  • RedHat зарелизили WildFly 18. Заявлена поддержка Jakarta EE 8, MicroProfile 3.0, JDK 13, есть куча изменений в подсистемах безопасности и EE, и многое другое.
  • Tobias Hartmann, HotSpot-инженер в Oracle, опубликовал в почтовой рассылке valhalla-dev большое письмо «Optimizing the way to Valhalla: JIT Status Update». Valhalla — это проект в OpenJDK, представляющий из себя инкубатор самых крутых современных идей в виртуальной машине и языке Java, такие как Value Types и Generic Specialization. Письмо представляет собой сплошной чеклист, и копипастить его в этот дайджест бессмысленно. В целом, там подробности про оптимизацию доступа к массивам и скаляризацию в C2.Читать полностью »

В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобил» я увидел, что один интересный запрос выполняется без какой-либо аутентификации.

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

Как я нашел способ отследить всех водителей «Ситимобил» - 1
Читать полностью »

В субботу вечером я, как всегда, сидел и снифил трафик со своего телефона. Внезапно, открыв приложение «Ситимобил» я увидел, что один интересный запрос выполняется без какой-либо аутентификации.

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

Ищем подходящий автомобиль… - 1
Читать полностью »

image

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

Однако иногда ваша целевая аудитория не сильно подкована технически. Люди не против использовать ваши скрипты на Python до тех пор пока им не нужно смотреть на одну строку кода. В таком случае скриптов командной строки будет недостаточно. В идеале вам нужен графический интерфейс. Цель этого поста использовать только Python.

Библиотеки Python, которые можно использовать для графического интерфейса

По сути, есть 3 большие библиотеки Python для графического интерфейса; Tkinter, wxPython и PyQT. Рассматривая их, я не нашел там ничего из того, что мне нравится в Python. Библиотеки Python, как правило, очень хорошо абстрагируются от супер-технических моментов. Если бы мне нужно было работать с объектно-ориентированным программированием, я мог бы с таким же успехом загрузить Java или .Net.
Читать полностью »

image

Друзья и коллеги, в последнее время на Хабре участились статьи с хейтом в адрес 1С, как платформы для разработки, и выступлениями ее защитников. Эти статьи обозначили одну серьезную проблему: чаще всего, критики 1С критикуют ее с позиции "не осиливших", ругая проблемы, которые де-факто, легко решаются, и, напротив, не задевая проблемы, которые действительно важны, стоят обсуждения и не решаются вендором. Полагаю, что имеет смысл провести трезвый и взвешенный обзор платформы 1С. Того, что она умеет, того что она не умеет, того что она должна бы делать, но не делает и, на сладкое — то, что она делает на ура, а ваши разработчики на %technology_name% будут делать стопицот лет, выкинув на ветер не один годовой бюджет.

В результате, вы, как руководитель или архитектор сможете получить четкое понимание — для какой задачи вам будет выгодно взять 1С, и где ее надо выжигать каленым железом. Как разработчик мира "не 1С" вы сможете посмотреть, а что же там такого в 1С есть из-за чего сыр-бор. А как разработчик 1С — сможете сравнить свою систему с экосистемами других языков и понять свое расположение в системе координат софтверной разработки.
Под катом — масса толстых набросов на 1С, на критиков 1С, на Java, .NET и вообще… Вентилятор заправлен, добро пожаловать!

Читать полностью »

DartUP 2019: итоги и видеозаписи докладов - 1

23 ноября в питерских Ткачах прошел DartUP — единственная в России конференция по Dart и Flutter. Это уже второе большое событие, организованное Wrike при поддержке Google. Все началось два года назад, когда Wrike создал русскоязычное сообщество DartRu, которое было официально признано Google. За это время мы провели несколько тематических митапов и конференций, и вот в 2019-м нам едва ли хватило мест на DartUP для всех желающих.

Мы хотим поблагодарить всех участников, спикеров, ведущих и организаторов! Без вас DartUP бы не удался. За целый день мы успели послушать доклады в двух залах, посоревноваться в CodeBattle, узнать про Dart и Flutter из первых уст, выиграть призы, задать вопросы в специальном приложении и, конечно, пообщаться на неформальной нетворкинг-сессии, запивая все специально сваренным Dart-пивом.

Несколько цифр про DartUP 2019:

Читать полностью »

Никто (почти) не знает, что такое авторизация - 1

За время работы архитектором в проектах внедрения IdM я проанализировал десятки реализаций механизмов авторизации как во внутренних решениях компаний, так и в коммерческих продуктах, и могу утверждать, что практически везде при наличии относительно сложных требований они сделаны не правильно или, как минимум, не оптимально. Причиной, на мой взгляд, является низкое внимание и заказчика и разработчиков к данному аспекту на начальных этапах и недостаточная оценка влияния требований. Это косвенно подтверждает повсеместное неправильное использование термина: когда я вижу словосочетание «двухфакторная авторизация», у меня начинаются боли чуть ниже спины. Ради интереса мы проанализировали первые 100 статей на Хабре в выдаче по запросу «авторизация», результат получился неутешительный, боли было много:
Читать полностью »

Транскомпилируемые языки: проекты конвертации код-в-код - 1
Источник: Ward Cunningham

Транспиляция — это конвертация кода одного языка в другой. С помощью специального транспилера (транскомпилятора) один язык программирования общего назначения можно перенести на любой другой язык программирования общего назначения.

Если необходимо переключиться на другой язык, транспилеры помогут разработчикам сохранить бóльшую часть существующего кода, не переписывая весь код вручную. Например, при преобразовании программ из Python 2 в Python 3, или при переносе софта от старого API в новый.

Термины «транспилер» и «транскомпилятор» часто взаимозаменяемы, но все же считается, что различия есть. Например, для преобразования кода C++ в C потребуется транспилер, а для конвертации Python-Ruby — транскомпилятор. Babel для JavaScript — это транспилер, а TypeScript — транскомпилирумый язык.

Иногда после конвертации транспилером для правильной работы кода требуется ручная настройка, в то время как в транскомпилируемых языках код должен работать без изменений. Сегодня поговорим о тех и о других, но главное — расскажем о популярных транс-проектах, которые разработчики могут использовать в повседневной работе.
Читать полностью »

Около года назад разработчики PyTorch представили сообществу TorchScript — инструмент, который позволяет с помощью пары строк кода и нескольких щелчков мыши сделать из пайплайна на питоне отчуждаемое решение, которое можно встроить в систему на C++. Ниже я делюсь опытом его использования и постараюсь описать встречающиеся на этом пути подводные камни. Особенное внимание уделю реализации проекта на Windows, поскольку, хотя исследования в ML обычно делаются на Ubuntu, конечное решение часто (внезапно!) требуется под "окошками".

Примеры кода для экспорта модели и проекта на C++, использующего модель, можно найти в репозиториии на GitHub.

Как подружить PyTorch и C++. Используем TorchScript - 1

Читать полностью »

Последний учебный год, апрель месяц. Студента все чаще и чаще начинают посещать мысли о том, что надо бы заняться дипломной работой. Заняться — в смысле придумать, как быстро состряпать нечто, что будет хотя бы созвучно той теме, которую, вроде как, утверждали с научным руководителем. А, да, надо хотя бы на 80 страниц, еще и соблюсти ГОСТы там всякие… Понятное дело, самому столько связного текста уже не успеть набрать (да еще и могут начать в суть работы вникать, ну его!). Очевидно — надо брать готовую работу, которую уже защитили, работу качественную, проверенную и одобренную. Знакомая всем нам ситуация. Открытым остается единственный вопрос — как сделать так, чтобы работа прошла проверку на заимствования… Поиск в интернете и общение с коллегами по несчастью приводят студента к следующим вариантам решения проблемы:

  • Написать работу самому;
  • Перефразировать текст (дорого и сложно);
  • Обхитрить систему с помощью «технических обходов».

Так Систему не обойти - 1

Давайте посмотрим, какими бывают технические обходы, как мы их отлавливаем и почему их применение — не самая хорошая идея…
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js