Рубрика «Песочница» - 164

Введение

Недавно решил открыть для себя магию, новых для меня, (Websockets.) Поскольку недавно открыл для себя чудеса python 2.7.7. решил взять его, как серверную сторону. Можно было использовать чужие библиотечки как ws4py или Twisted webscokets, но т.к. Я люблю писать сам, то возьмем просто socket.
Читать полностью »

Товарищи! Эта статья не для high-high-highload систем. Скорость работы представленных решений определённо меньше простейших проверок. На многотысячных или очень глубоких структурах применять предлагаемый подход крайне не рекомендуется. В этом топике побеждает быстрое кодирование, а не быстрый код.

Без длинных

Давайте без длинных вступлений, но всё же с предысторией. Однажды в рамках создания очередного очень важного компонента веб-сервиса нам понадобилось проверять уйму очень разных входных параметров (в данном случае, пришедших через $_REQUEST). Компонент был очень сложный, внутренняя и внешняя логика вызывала ежедневный баттхёрт между всеми участниками, а отдуваться приходилась немногим «избранным» программистам, которые писали, переписывали, выпиливали и запиливали заново. Когда на вход в систему с фронтенда падают десятки разных переменных, в том числе массивов, программисты при этом делают перекрёстные задачи (меняя логику) и мешают друг другу — код очень быстро разрастается, количество цепочек if-ов начинает занимать не одну страницу. Возвращаться к такому коду всё более и более чуждо ранимой душе. Тесты уже не очень помогают, т. к. каждое изменение логики приводит к изменению тех же тестов, в которых ещё надо вспомнить, понять и простить. Вот тогда и встал вопрос о создании удобного способа проверять весь входной поток каким-то приятным глазу способом, да чтоб всегда и везде получать фидбек про ошибки в однотипном виде. Акцент тут изначально стоял именно на удобстве для разработчиков, строго прошу в дальнейшем иметь.
Читать полностью »

Немного предыстории. Обладая неслабой паранойей, я заморочился мыслью о том, каким образом можно раз и навсегда удалить файлы с жёсткого диска в ОС Ubuntu.

Моя проблема состояла в том, что я уже удалил конфиденциальные файлы, а только потом узнал, как нужно было всё сделать правильно. Но и на этот случай нашёлся способ. Итак, знакомьтесь — команда shred.
Читать полностью »

В процессе разработки ПО весьма не мало зависит от используемого редактора кода. Я, поддавшись веянью моды, решил освоить текстовый редактор Sublime Text 2, слишком уж много положительных отзывов я слышу о нем. Мне самому хватало Eclipse. Но со временем в Eclipse меня стало раздражать подтормаживание интерфейса и в конечном итоге я пришел к выводу, что всех «прибамбасов» Eclipse мне не надо, а от Eclipse мне нужна лишь подстветка синтаксиса, навигация по проекту, быстрые клавиши и работа с Ant. Ant обычно в проектах у меня делал компиляцию или упаковку проекта (тут под упаковкой подразумевается распределение исходников по определенной в структуре каталогов, как это в PHP-фреймворках или в RubyOnRails нужно) и отправку итога на веб сервер по FTP. Начиная работу с Sublime Text 2, мне не хотелось переключаться на консоль для вызова Ant, а использовать его непосредственно в интерфейсе Sublime Text 2. И решение было найдено.
Читать полностью »

В сети имеется немало советов по безопасности онлайн-платежей с использованием банковских карт. Редакция National Geographic, видимо, не видела ни один из них. На сайте «National Geographic Россия» на этой страничке можно, якобы, оформить подписку на этот журнал:


image


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

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

В новостях обычно не прочитаешь, что кто-то «высокий» инвестирует фундаментальную, а не прикладную науку. Ан нет… оказывается бывает. Кто не знает может ознакомиться под катом.
Читать полностью »

Привет!
В данном топике я расскажу как создать простой плагин для IntelliJ IDEA и PyCharm. Так как все IDE содержат одинаковый интерфейс для работы с плагинами, то модификация его для других систем не требует значительных усилий (подробнее), в отличии от процесса непосредственной разработки.

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

Плагины пишутся на Java, UI создается на SWING. Документация для разработки плагинов состоит всего лишь из нескольких страниц и горстки примеров. На просторах интернета данная тематика не отражена совсем. Единственное, что слегка помогает это наличие исходных кодов у некоторых уже созданных плагинов.

Изначально я хотел создать окно в котором можно быстро и удобно выбрать описание стандартной библиотеки питона, но получилось плохо. Добавить ещё можно многое, хотя бы поиск и подсветку документации питона. Доделывать желания нет, пока проще по старинке использовать браузер.

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

Добрый день.

Спешу поделиться небольшим опытом использования Google Maps API Web Services.
В этой статья я расскажу как использовать службы для геокодирования, геодекодирования.
Так же как можно находить расстояния и маршруты между точками. И конежно же коснусь решения задачи «куда сходить ближе туда или туда».
Читать полностью »

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

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

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

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

Напомним, что файлы в фортрановском проекте зависят друг от друга через модули. Если в одном файле есть module A, а в другом — use A, то первый файл должен быть скомпилирован раньше. При этом подобная информация нигде не прописывается и генерируется на лету. Интеграция компилятора Intel Fortran с Visual Studio в большинстве случаев правильно определяет последовательность компиляции, однако и она может ошибиться, что уж говорить о специальных утилитах, нацеленных на создание make-файлов.

Ниже приводится метод определения зависимостей в файлах проекта и описание процесса автоматической сборки проекта без использования специальных программ.
Читать полностью »


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