Обновить
1422.08

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Самые популярные слова в двух терабайтах кода

Время на прочтение6 мин
Охват и читатели26K
Привет, друзья! Я тут проанализировал 2ТБ кода и получил самые популярные слова в разных языках программирования. Результаты можно посмотреть в виде облаков тегов и простым списком:

image
Сайт находится здесь, а его исходники можно почитать на гитхабе.

Под катом описано в деталях о том как собирались данные, как строился сайт и как укладывались облака. И немножко наблюдений.

Приятного чтения!
Читать дальше →

Повесть о невозможном баге: big.LITTLE и кэширование

Время на прочтение3 мин
Охват и читатели12K
Когда кто-то произносит слово многоядерный, то мы бессознательно подразумеваем SMP. Это успешно срабатывало для нас до недавнего времени, пока ARM не объявила о big.LITTLE. Архитектура ARM big.LITTLE является первым массово производимым примером архитектуры AMP, и как мы увидим далее, она поднимает планку сложности многоядерного программирования еще выше.
Читать дальше →

Мастер-класс от JetBrains на C++ Russia 2017

Время на прочтение4 мин
Охват и читатели5.2K
Всем привет! 24-25 февраля 2017 года в Москве пройдет очередная ежегодная конференция C++ Russia, организованная сообществом C++ User Group Russia. Компания JetBrains уже несколько лет занимается созданием продуктов для разработки на C++ и традиционно участвует в данном событии. Наших сотрудников вы сможете найти на выставочном стенде в течение обоих дней – задать вопрос, попросить помочь с проблемой с любым из наших продуктов, распросить про возможности наших инструментов, наши планы на будущее, или просто поговорить о языке C++ и не только.

Если же вам хочется стать настоящим гуру разработки на C++, то обратите внимание, что накануне конференции, 23 февраля, запланирована целая серия мастер-классов от бывалых разработчиков.

В блоге C++ User Group Russia уже писали о некоторых из них. Мы же хотим рассказать о мастер-классах (а их запланировано целых три!), которые проведут сотрудники компании JetBrains.

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

Генерация документов в doc, excel, pdf и других форматах на сервере

Время на прочтение3 мин
Охват и читатели44K
Выгрузка отчетов в различных форматах — типовая задача для многих проектов. И сейчас есть немало инструментов для этого. Среди них есть интересный вариант, который применяется, как мне кажется, не часто, но он однозначно стоит внимания. Потому что позволяет получить документ в нужном формате буквально одной командой. О нем и расскажу.

image

Читать дальше →

Выпуск фреймворка Qt 5.8

Время на прочтение4 мин
Охват и читатели26K

Сегодня, спустя 7 месяцев с момента предыдущего значительного выпуска, вышла версия 5.8 кроссплатформенного фреймворка Qt.


Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.


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


Читать дальше →

Пишем обертку над API, делаем из нее PIP-пакет, подключаем тестирование от Travis CI и смотрим на лицензии открытого ПО

Время на прочтение6 мин
Охват и читатели10K

Приветствую, Хабрахабр! Данная статья будет полезна желающим ознакомиться не только с оформлением собственного пакета Python Package Index (PIP), но и с различными вспомогательными инструментами, помогающими сопровождать разработку на всех стадиях — на примере авторской работы.

Необходимые инструменты:

  • Среда разработки — написание объектно-ориентированного кода, тесно работающего с интерфейсом приложения (в нашем случае веб-сайта), другими словами — отправка и обработка запросов к API, и дополнительных вспомогательных файлов;
  • Загрузка своих наработок в общий каталог пакетов — PyPI;
  • Github — создание репозитория с целью контроля качества, улучшения и перманентного обновления библиотеки, общего взаимодействия с областью открытого исходного кода;
  • Одна из лицензий свободного программного обеспечения, в нашем случае — MIT License;
  • Travis CI — непрерывная сборка и тестирование разрабатываемого проекта в различных окружениях (например, разные версии языка или интерпретатора).

Данный список можно принимать за содержание статьи в соответствующем порядке.
Читать дальше →

Pygest #1. Релизы, статьи, интересные проекты из мира Python [01 января 2017 — 15 января 2017]

Время на прочтение2 мин
Охват и читатели14K
image

Всем привет! Серией данных дайджестов на Habrahabr хотелось бы продолжить некогда начатую alrusdi, Dead_Angel, WarmongeR идею опубликования свежих новостей, статей, релизов из мира Python.

Планируется выпускать дайджест 2 раза в месяц. Это будет не очень большие по размеру статьи с интересными (на взгляд автора) материалами из мира Python. Будут очень приветствоваться присланные актуальные материалы, которые будут добавлены в ближайший дайджест, а также люьые замечания и предложения.

А теперь к делу!
Перейти к дайджесту

Классические алгоритмы генерации лабиринтов. Часть 1: вступление

Время на прочтение8 мин
Охват и читатели70K


Предисловие


На написание статьи меня сподвигло практически полное отсутствие материалов на русском языке про алгоритмы генерации лабиринтов. На Хабре, из того, что вообще есть по теме, можно отметить две статьи: раз и два. Ценность и пользу из которых несет лишь вторая. В первой – просто перевод формального алгоритма и небольшое его пояснение. Что, конечно, неплохо, но очень скудно и не вызывает желания изучать тему дальше.

Если моя статья Вам понравится, я продолжу писать о различных алгоритмах. Мы рассмотрим два самых примитивных и простых случая – генерация двоичного дерева и Сайдвиндер, который, по своей сути, просто чуть измененная версия двоичного дерева с одним заметным плюсом. ОСТОРОЖНО ТРАФИК.
Читать дальше →

Разработка JDK 9 прошла фазу «Feature Complete»

Время на прочтение2 мин
Охват и читатели11K
Марк Рейнхольд (Mark Reinhold) главный архитектор платформы Java в Oracle на днях сообщил в рассылке что разработка JDK 9 прошла фазу «Feature Complete».
image

Что значит, что добавление новой функциональности в проект приостановлено и теперь необходимо сконцентрировать усилия сообщества разработчиков на исправлении ошибок.
Читать дальше →

Bitcoin in a nutshell — Blockchain

Время на прочтение6 мин
Охват и читатели82K

Blockchain — это технология, на базе которой построен Bitcoin. И если пару лет назад вся слава доставлась криптовалюте, то сегодня все чаще можно слышать смелые фразы вроде: "Forget Bitcoin, Long Live Blockchain". Активно развиваются платформы вроде Ethereum, IPFS или Overstock, которые рассматривают блокчейн не как инструмент для создания еще одной платежной системы, а как совершенно обособленную технологию, сравнимую по своей инновационности разве что с Интернетом.


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


meme

Читать дальше →

Bitcoin in a nutshell — Mining

Время на прочтение14 мин
Охват и читатели87K

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


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


mining_meme

Читать дальше →

Windows Performance Station или как я учил комп работать эффективно

Время на прочтение9 мин
Охват и читатели48K
image

Здравствуйте, уважаемые читатели! Вот я и добрался до Хабра и хочу поведать здесь историю своего проекта. Многие аспекты собственного опыта и работы приходится описывать довольно общими терминами, чтобы не задеть коммерческую тайну тех организаций, о которых идёт речь.

Суть данного рассказа в том, чтобы поделиться найденным методом решения проблемы производительности компьютеров на Windows и рассказать про подход, который позволил сделать данное решение полностью универсальным и индивидуальным для каждого пользователя. На написание кода и подбор наиболее эффективных механизмов потребовалось около 2х лет ежедневной работы, а также консультации и помощь от большого количества моих товарищей из разных IT областей, за что им огромное спасибо.
Читать дальше →

Про ScalaCheck. Генераторы (Часть 2)

Время на прочтение16 мин
Охват и читатели8.6K

Часть 2. Генераторы


В вводной статье серии вы, надеюсь уже, успели познакомиться с генераторами. В этом туториале мы закрепим полученные знания, научимся писать собственные (в том числе рекурсивные) генераторы. Хотя он и посвящен генераторам, про свойства мы тоже не забудем. Более того, мы будем их активно использовать, демонстрируя всю мощь механизма генераторов. Рассмотрим механизм предусловий (preconditions). Возможно, более логичным было бы посвятить свойствам вторую статью серии и, возможно, это стало бы правильным решением. Однако, по моим личным наблюдениям, наибольшие трудности вызывают именно генераторы. Свойства мы рассмотрим в следующей статье.

Читать дальше →

Ближайшие события

Токены PKCS#11: генерация ключевой пары и неизвлекаемость приватного ключа (Продолжение)

Время на прочтение7 мин
Охват и читатели23K
imageВ предыдущей статье «Токены PKCS#11: сертификаты и закрытые ключи» мы рассмотрели как можно однозначно связать тройку Сертификат x ПубличныйКлюч x ПриватныйКлюч, хранимую на токене/смаркарте с интерфейсом PKCS#11 v.2.40. В данной статье мы поговорим о генерации ключевой пары. Опираться мы будем, как и прошлый раз, на «ГОСТ Р 34.10-2012 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
Читать дальше →

Angular 2: почему на TypeScript?

Время на прочтение8 мин
Охват и читатели38K
Здравствуйте все, кто не забывает заглядывать в наш блог и в традиционно нерабочее время суток!

Давным-давно в нашей публикации от 13 ноября 2015 года вы убедили нас дождаться допиливания Angular 2 и издать о нем книгу. Мы всерьез собираемся взяться за такой проект в самое ближайшее время, а пока предлагаем почитать развернутый ответ на вопрос, вынесенный в заглавие этого поста.
Читать дальше →

Авторизация в Laravel, через социальные сети (Ulogin). Просто, гибко и эффективно

Время на прочтение4 мин
Охват и читатели20K
Привет, друзья. Хочу сегодня поделится своим взглядом на то, как можно сделать простую и эффективную авторизацию/регистрацию пользователей через любую социальную сеть, используя плагин Ulogin. Почему через этот плагин? Потому что он может избавить разработчика от кучи головной боли, которая возникнет при синхронизации с каждой социальной сетью в отдельности. Плюс вы сможете получить данные из плагина в едином красивом формате.
Читать дальше →

Один из простых способов улучшить свои навыки программирования — читать чужой код

Время на прочтение5 мин
Охват и читатели66K
Примечание: первоначально эта статья была написана для сайта Fuel Your Coding back в мае 2010 года. К сожалению, этот сайт сейчас не работает, поэтому я публикую статью здесь, чтобы сохранить её для потомков. Я собирался обновить её, учитывая последние веяния, но решил оставить так, как она была написана. Те части, что подустарели, могут показаться немного смешными, но да ладно. Получайте удовольствие…

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

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

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

В этой статье я хотел бы помочь вам в выборе того, что именно читать, и дать практические советы по такому чтению. Если вы уже и так читаете другие программы, то, может быть, вы найдёте здесь что-нибудь, что позволит получить больше от ваших усилий. Если же вы не читаете коды других разработчиков, то вы просто обязаны заняться этим.
Читать дальше →

Мониторинг приложений с помощью Pinba

Время на прочтение10 мин
Охват и читатели15K

Drawing Привет, Хабр! Мы в Badoo стараемся активно участвовать в жизни IT-сообщества: используем многие open-source-технологии и инструменты, а также делимся своими разработками.


Один из таких инструментов – Pinba – сервис для получения realtime-статистики от работающих приложений без накладных расходов на её сбор. Узнать побольше вы можете в этой статье.


Мы стараемся помочь всем, кто использует Pinba в своих проектах и всегда рады слышать success stories, связанные с Pinba. Этот перевод – одна из подобных историй от разработчиков Dailymotion.

Читать дальше →

А ваша служба является RESTful? Все что необходимо/обязательно знать про веб службы и REST

Время на прочтение18 мин
Охват и читатели169K

Введение


Вот не люблю я изобретать велосипед и статью я бы эту не написал, но пришлось. Про REST сказано уже довольно много. Многие поставщики веб служб готовы клясться, что их службы являются RESTful. Во время собеседования вы точно услышите хотя бы несколько вопросов про REST, независимо от того это собеседования для бэкенд, мобайл или фронтенд разработчика. Я вот помню как-то во время одного собеседования меня задали такой вопрос: «Вот вы написали в своем резюме, что знайте REST․ Ответьте пожалуйста, какой HTTP код вы получите, если при запросе к RESTful сервису ресурс не найден?». Ответ 404 был принят единогласно. Если честно, я так и не понял, как этот вопрос помог понять знаю ли я REST или нет, но одно могу уверенно сказать: REST понимают далеко не все. Вот некоторые вопросы, которые мучали меня долгое время:

  1. Зачем REST стал таким трендовым? Это архитектура была же предложена еще в 2000 году?
  2. Что я получу если моя служба будет RESTful?
  3. Как определить является ли служба RESTful или нет?
  4. Как правильно должны создаваться URL REST служб?
  5. Какие http методы и коды должны быть использованы в RESTful службе?

Если вы не можете дать исчерпывающего ответа хотя бы на один из этих вопросов, то продолжайте чтение. Если вы можете однозначно ответить на все эти вопросы, можете привести формат правильного URL, считайте, что GET, POST, PUT, DELETE обязательно должны соответствовать CRUD операциям с ресурсами, то вам обязательно надо продолжать чтение.
Читать дальше →

С лупой на слона

Время на прочтение10 мин
Охват и читатели9.5K

Я довольно давно участвую в разработке web-приложений. Это не высоконагруженные приложения (типа Facebook или Gmail) — там, разумеется, своя специфика. Мои приложения были небольшими (можно было уместить на одном физическом сервере), но функционально насыщенными — финансовые, e-commerce. Я не работал в больших командах, зато пощупал весь спектр технологий, начиная от сборки аппаратуры в стойке и заканчивая редактированием CSS.


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


image


Под катом я попытался собрать своё видение относительно наиболее важных с моей точки зрения аспектах в разработке web-приложений.

Читать дальше →

Вклад авторов