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

Сегодня мы хотим поговорить о сокровенном — у нас есть API.

Мы писали, а затем переписывали его заново на протяжении четырех лет. И за это время прошли почти все классические стадии “принятия неизбежного”. Кроме одной — четвертой. И хотим поделиться нажитыми непосильным трудом выводами, что делать и не делать, если вы решите делать свой “мощный эпиай”.

5 стадий API: что мы поняли, написав две версии - 1

Процесс создания API uCoz иногда напоминал сюжет сериала The Knick («Больница Никербокер») — с неудачными операциями, кишками и экспериментами на живых людях.

Стадия первая – Отрицание

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

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

Фред — профессиональный разработчик софта и связан с этой индустрией достаточно долго, чтобы набить немало шишек в боях. Он часто вспоминает о неприятных, несправедливых и иногда невероятных моментах, которые расстраивают и злят его. Несмотря на попытки сохранять позитивный настрой, Фред придерживается мнения, что подобным опытом нужно делиться. Если вы работаете в IT-индустрии и чувствуете, что к вам относятся не должным образом, то наверняка вы в этом не одиноки. Он рассказывает о неприятных моментах в своей карьере с надеждой, что больше людей начнут обращать внимание на подобные происшествия и, возможно, протянут руку помощи своему коллеге, которому необходима поддержка. Итак, Фред хотел бы поделиться несколькими случаями, которые имели место в его собственной карьере. Они поданы не в хронологическом порядке. Сам он говорит, что в некоторые из них ему до сих пор верится с трудом, но, большинство из этих моментов сейчас вызывают у него улыбку.
Читать полностью »

Esp8266 управление через интернет по протоколу MQTT - 1
Всем привет! В этой статье будет подробно рассказано и показано как буквально за 20 минут свободного времени настроить дистанционное управление модулем esp8266 с помощью приложения на Android по протоколу MQTT.

Идея дистанционного управления и мониторинга всегда будоражила умы увлеченных в электронике и программировании людей. Ведь возможность в любой момент времени получить или отправить нужные данные, не зависимо от своего местоположения, дает широкие возможности. В своих прошлых статьях ( Статья 1 и Статья 2) я пытался рассмотреть несколько доступных и относительно простых вариантах реализации дистанционного управления микроконтроллерами через интернет. Однако время и весь мир не стоит на месте – прогресс продолжает свое неумолимое движение вперед. За это небольшое время приобрел широкую популярность модуль esp8266 который благодаря низкой цене и встроенному wi-fi стал одним из основных составляющих «Умного дома».
Читать полностью »

Результаты большого чемпионата по программированию — 2016 на 5 тысяч человек - 1

С 16 марта по 15 апреля проходил уже третий наш Открытый чемпионат по программированию для любых участников из России и других стран. В прошлый раз участвовало чуть больше 4 тысяч человек, а в этом году в первом туре на платформе Codeforces было уже целых 5 тысяч участников. Причём школьники и студенты шли поначалу наравне с опытными разработчиками и профессиональными киберспорстменами (хотя они тоже часто – студенты).

Результаты большого чемпионата по программированию — 2016 на 5 тысяч человек - 2

Кроме основного соревнования по олимпиадной схеме, для 50 финалистов была отдельная задача на написание AI боевого робота, сражающегося с другими роботами участников.Читать полностью »

Проекты студентов в рамках Google Summer of Code - 1

22 апреля объявлены результаты отбора студентов в рамках Google Summer of Code. Этому предшествовали 4 напряженные недели, во время которых менторы на собственной шкуре ознакомились с парадоксом Фредкина (чем больше похожи друг на друга два объекта, тем труднее сделать выбор между ними) и его предельным вариантом — парадоксом Буриданова осла. Это было связано со «взаимозаменяемостью» студентов, которые одинаково хорошо подходили на два разных сетевых проекта.
Читать полностью »

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

Проще говоря: нарушение доступа к памяти — это какие-то действия с некорректными данными, а утечка памяти — это отсутствие определённых действий с корректными данными. В табличной форме:

                    Корректные данные     Некорректные данные
Используются        OK                    Ошибка доступа к памяти
Не используются     Утечка памяти         OK

Лучшие программы выполняют только действия из ОК-ячеек: они манипулируют корректными данными и не манипулируют некорректными. Приемлемые программы могут также содержать некоторые корректные, но неиспользуемые данные (утечки памяти), а плохие пытаются использовать некорректные данные.

Когда язык обещает безопасную работу с памятью, как это делает Rust, это не гарантирует невозможность утечек памяти.

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

image
КДПВ

От переводчика:
Большинство моих знакомых для измерения времени в разного вида бенчмарках в С++ используют chrono или, в особо запущенных случаях, ctime. Но для бенчмаркинга гораздо полезнее замерять процессорное время. Недавно я наткнулся на статью о кроссплатформенном замере процессорного времени и решил поделиться ею тут, возможно несколько увеличив качество местных бенчмарков.

P.S. Когда в статье написано "сегодня" или "сейчас", имеется ввиду "на момент выхода статьи", то есть, если я не ошибаюсь, март 2012. Ни я, ни автор не гарантируем, что это до сих пор так.
P.P.S. На момент публикации оригинал недоступен, но хранится в кэше Яндекса

Функции API, позволяющие получить процессорное время, использованное процессом, отличаются в разных операционных системах: Windows, Linux, OSX, BSD, Solaris, а также прочих UNIX-подобных ОС. Эта статья предоставляет кросс-платформенную функцию, получающую процессорное время процесса и объясняет, какие функции поддерживает каждая ОС.

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

Чего ждать IT-специалисту в сфере финансов: Требования и используемые технологии - 1

В нашем блоге мы много пишем о технологиях, применяющихся в сфере финансов. За несколько сотен лет биржи прошли путь от публикации цены дважды в неделю на небольших клочках бумаги — как это было, например, в Лондоне, где брокеры собирались в кофейне «У Джонатана», до настоящего технологического большого взрыва в 80-е годы прошлого века.

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

Сегодня мы поговорим о том, чего стоит ждать тем из них, кто все-таки решится углубиться в финансовую отрасль — какие технологии (софт, железо, протоколы) здесь используются и какие требования предъявляются к специалистам?Читать полностью »

Как использовать ограничения JSON при работе с PostgreSQL - 1

Ранее в блоге на Хабре мы рассказывали о развитии нашего продукта — биллинга для операторов связи «Гидра», а также рассматривали вопросы работы с инфраструктурой и использования новых технологий. К примеру, мы рассмотрели плюсы Clojure и ситуации, когда стоит и не стоит использовать MongoDB.

Сегодня речь пойдет о работе с JSON, и в частности, о применении ограничений. Интересный материал на эту тему опубликовал в своем блоге разработчик Магнус Хагандер (Magnus Hagander) — мы представляем вашему вниманию главные мысли этого материала.Читать полностью »

Скоро пасха, время искать яйца, да не простые, а программные. И мы нашли их.

Python

Введите в REPL import __hello__ или import __phello__, и вы увидите:

>>> import __hello__
Hello world...
>>> import __phello__
Hello world...

Чтобы полюбоваться еще раз, используйте reload(__hello__).
Ещё одна небольшая забава:

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

Есть в Python модуль, носящий название antigravity. Вызовите его аналогичной командой import antigravity, и в браузере откроется комикс с ресурса XKCD: xkcd.ru/353

Главная духовная пасхалка Python — скрытое сообщение под названием The Zen of Python. Введите в REPL import this и вы увидите послание авторства Тима Питерса (Tim Peters).

Попробуйте поговорить с Python о любви. Хоть это и не пасхальное яйцо, зато смысл получается очень глубокий:Читать полностью »


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