Все потоки
Поиск
Написать публикацию
Обновить
1007.74

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

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

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

Как мы делали первую сделку-аккредитив на блокчейн в Альфа-Банке

Время на прочтение12 мин
Количество просмотров30K
Несколько месяцев назад Альфа-Банк и S7 совершили сделку-аккредитив, используя блокчейн. Если вы ещё не видели, то прошу сюда.

  

Думаю многие слышали или читали про блокчейн — вокруг технологии много хайпа и как обычно до нас это всё дошло с некоторым запозданием. Но всё таки дошло и теперь многие хотят, чтобы в их продуктах был блокчейн. Возможно мощный маркетинг приведёт к “зиме” в ещё одной технологии, а возможно мы все окажемся в одном большом блокчейне. Давайте всё таки разбираться с технологией и сделаем это на примере продукта Аккредитивы, который мы создали.
Читать дальше →

Промисы на примере бургер-вечеринки

Время на прочтение4 мин
Количество просмотров39K


Это перевод статьи, которую Марико Косака написала в качестве альтернативного введения в промисы JavaScript. Наброски иллюстраций она делала в своём блокноте во время чтения разных статей, посвящённых промисам. Если хотите изучить более подробно, в конце вы найдёте список полезных ссылок.

Недавно Марико участвовала в обсуждении того, как можно с помощью JavaScript сделать фичу, которая давала бы доступ к внешним данным (должна была быть асинхронной). Она сказала: «Ну, давайте используем fetch()… так что в коде… эээ...», и пока силилась вспомнить fetch API, собеседник сказал: «Будет возвращаться промис». По словам Марико, её мозг впал в ступор, и она сказала: «Честно говоря, не знаю, что ты имеешь в виду…»

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

Как не писать лишнего. Без магии

Время на прочтение8 мин
Количество просмотров12K

img
Недавно я опубликовал свою первую статью на Хабре. И первый блин прилетел мне прямо в голову. 12к просмотров и плюс 4 звезды на гитхабе… Ладно, сам виноват, не надо было заниматься ерундой на уроках русского языка и литературы. Если я правильно понял, то проблема заключалась в том, что я сразу перешел к сути. Вывалил все в лоб. Не познакомился с родителями, так сказать. А что за Jeta такая, как она работает, что происходит за сценой? Магия какая я то… Никому ведь не нужна магия в проектах, так?


"От куда у тебя уверенность, что твоя библиотека вообще кому-то нужна?" спросит среднестатистический хаброчанин. Оттуда, что каждый день, вешая очередную аннотацию или просто смотря на код, я думаю "Боже, это прекрасно!". Кто от такого откажется?


Ладно, давайте сначала и по порядку.

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

Про ScalaCheck. Свойства. Часть 3

Время на прочтение8 мин
Количество просмотров3.3K

Часть 3. Свойства


В предыдущих частях мы уже успели познакомиться со свойствами и опробовать их в связке с генераторами. В этом туториале мы рассмотрим свойства подробнее. Статья состоит из двух частей: первая — техническая, в ней будет рассказано про комбинаторы свойств, а также другие возможности библиотеки ScalaCheck. Эта часть будет посвящена различным техникам тестирования.

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

Оптимизация фронтенда под браузеры

Время на прочтение19 мин
Количество просмотров53K

enter image description here


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


  • С точки зрения User Experience (UX) фронтенд должен обеспечивать быструю загрузку и работу веб-страниц.
  • А с точки зрения Developer Experience (DX) нам хочется, чтобы и сам фронтенд тоже работал быстро, был прост в использовании и вообще являлся примером для подражания.

Всё это делает пользователей и разработчиков счастливее, а заодно существенно улучшает ранжирование сайтов поисковиками. Например, Google уделяет особое внимание оптимизированности фронтенда. Если вы достаточно долго бились над тем, чтобы ваш сайт заработал побольше баллов в Google Pagespeed Insights, то, надеемся, эта статья поможет вам лучше понять, для чего всё это нужно и каково разнообразие стратегий оптимизации фронтенда.

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

Снова о числах с плавающей точкой

Время на прочтение10 мин
Количество просмотров18K
Несмотря на то, что вопросам точности компьютерных вычислений посвящено очень много публикаций, некоторые из них, на наш взгляд, всё же остаются не до конца четко раскрытыми. А именно:

1. Какое количество верных цифр n гарантированно имеет десятичное число, представленное двоичным m разрядным кодом в формате числа с плавающей точкой.
2. Как влияет нормализация чисел с плавающей точкой на точность представления числа при его преобразовании из одной системы счисления в другую и при арифметических действиях, выполняемых на компьютере.
3. Как влияет округление числа, представленного в двоичном виде на его десятичный эквивалент.
4. Как положение виртуальной точки в машинном слове влияет на значение числа, представленного в экспоненциальной форме.

Ниже мы попытаемся ответить на эти вопросы.
Читать дальше →

Обучение без учителя. Как стать профессионалом, не имея наставника

Время на прочтение8 мин
Количество просмотров30K

image


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


В этой статье я поделюсь правилами, которые помогают мне постоянно развиваться как специалист, поддерживать себя в конкурентноспособной форме, и расскажу историю подъема от pre-junior до senior.


БОНУС: подборка забавных и удручающих случаев с собеседований.

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

Открытые онлайн-курсы от Университета ИТМО: Мартовская версия

Время на прочтение3 мин
Количество просмотров14K
В одном из наших предыдущих материалов мы публиковали список курсов, проводимых преподавателями Университета ИТМО. Февральским обучающим программам дан старт, но вы все еще можете на них записаться и влиться в рабочий процесс. А сегодня мы подготовили новую подборку курсов, начало которых запланировано на 6 марта.

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

Самая простая в мире lock-free хеш-таблица

Время на прочтение6 мин
Количество просмотров20K
image

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

История одного толстого бинарника

Время на прочтение9 мин
Количество просмотров14K

enter image description here


Привет. Меня зовут Марко (я системный программист в Badoo). И я представляю вашему вниманию перевод поста по Go, который мне показался интересным. Go действительно ругают за толстые бинарники, но при этом хвалят за статическую линковку и за удобство выкладки единственного файла. Если на современных серверах толстые бинарники – не проблема, то на встраиваемых системах – еще как. Автор описывает свою историю борьбы с ними в Go.

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

Настоящий герой в мире программирования: кто он?

Время на прочтение3 мин
Количество просмотров8.5K
В нашем мире, где в списке самых богатых людей находятся финансисты и бизнесмены, для многих начинающих специалистов это является основной мотивацией для выбора будущей профессии: придумаю следующий Facebook, найду разработчиков и разбогатею.

Но что если сегодня больше не нужны новые Марки Цукерберги? Может быть достаточно быть простым работягой, хорошо выполняющим свои обязанности, чтобы «спасти» этот мир?

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

Краткое руководство по выходу в opensource: кому это нужно, для чего и как

Время на прочтение4 мин
Количество просмотров10K

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


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


Отличие их состояло в том, что они активно распространяют свои технологии и знания — делятся с профессиональным сообществом открытым кодом и понятными мануалами, выступают на конференциях. Они осознанно вкладываются в развитие своих opensource-проектов. Технологии и описания многих из них лежат в открытом доступе на специально созданных сайтах tech.yandex.ru, opensource.mail.ru, techno.2gis.ru/opensource, и известны многим разработчикам за пределами компаний.


Если вы вдруг решили заняться благотворительностью (почти) и сделать что-то подобное в своей компании, надеюсь, мой текст поможет ответить на вопросы: нужно ли это вам, сколько ресурсов потребуется и что в итоге получится. У нас вышел такой сайт: tech.skbkontur.ru.

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

Unsafe продолжает жить в Java 9

Время на прочтение2 мин
Количество просмотров20K
С началом работы над Java 9 было анонсировано удаление критически важных классов из пакетов sun.* (понятное дело Sun, а в последствии и Oracle заявляли, что их использование является собственным риском компаний и проектов), что вызвало шквал критики и недовольства со стороны сообщества (ибо highload решения для которых производительность это все, используют скрытые возможности sun.*). Предыстория началась 15 лет назад с выходом версии языка 1.4, за это время большое количество библиотек, фреймворков, приложений успели внедрить закрытый код в свой.

socmetr.unsafe.image

Вот только не полный перечень проектов, которые у всех на слуху: Scala, Kafka, Akka, Hadoop, Cassandra, Hazlecast и прочие…
Читать дальше →

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

Обновление кода приложений на работающем сервере

Время на прочтение9 мин
Количество просмотров12K

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

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

Вероятностное программирование на Scala

Время на прочтение7 мин
Количество просмотров10K
Здравствуйте, дорогие читатели. Сегодня мы публикуем внеочередной перевод — это будет обзорная статья блистательного Ноэля Уэлша о принципах вероятностного программирования. Статья публикуется по заявкам читателей, которые задают нашему блогу все более высокую планку — и это, безусловно, здорово!
Читать дальше →

Третья конференция JavaScript-разработчиков в Одессе «JS Lab» ищет спикеров

Время на прочтение1 мин
Количество просмотров2.4K


Хабр, привет! 25 марта в Одессе я буду проводить ежегодную конференцию JavaScript-разработчиков — JS Lab. Сейчас мы запустили обновленный сайт и я занимаюсь формированием программы. В ближайшие дни на сайт мы добавим первых спикеров, а если вы хотите стать одним из них, пишите мне на почту (d.spodarets@flyelephant.net) или заполняйте форму здесь.

В отличие от прошлых лет, в этом году, мы отбираем 2 типа докладов — 12 докладов по 45 мин и 8 блиц-докладов по 10 мин. Традиционно будет два потока.

Следите за новостями в фейсбуке.

Анимационная пасхалка, или дань уважения студии при увольнении из нее

Время на прочтение6 мин
Количество просмотров13K


На Хабре много статей. Но не каждая показывает, как размышлял автор, его грабли и действия.
Здесь я хочу вам рассказать, как я делал пасхалку для логотипа веб-студии в которой я работал.
Читать дальше →

Elixir и Angular 2 безо всяких Hello, world!, или Реализуем работу с древовидным справочником, часть 1

Время на прочтение64 мин
Количество просмотров12K

КПДВ


Функциональный язык программирования Elixir набирает популярность, а один из последних фреймворков для создания одностраничных приложений — Angular 2 — недавно вышел в релиз. Давайте познакомимся с ними в паре статей, создав с нуля полноценный back-end на Elixir и Phoenix Framework, снабжающий данными клиентское приложение-frontend на базе Angular 2.


Hello, world — не наш вариант, поэтому сделанное при необходимости можно будет применить в реальных проектах: весь представленный код выложен под лицензией MIT.


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


В первой статье будет несколько вступительных слов и работа над back-end. Поехали!

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

Pygest #4. Релизы, статьи, интересные проекты из мира Python [14 февраля 2017 — 27 февраля 2017]

Время на прочтение2 мин
Количество просмотров9.9K
image Всем привет! Это уже четвёртый выпуск дайджеста на Хабрахабр о новостях из мира Python. В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся Django, работы Python, машинного обучения и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.

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

Как я писал компилятор С++. Пересказ спустя 15 лет

Время на прочтение8 мин
Количество просмотров53K
15 лет назад не было Хабрахабра, не было фейсбука, и что характерно, не было компилятора С++, с выводом диагностических сообщений на русском. С тех пор, вышло несколько новых стандартов С++, технологии разработки сделали гигантский скачок, а для написания своего языка программирования или анализатора кода может потребоваться в разы меньше времени, используя существующие фреймворки. Пост о том, как я начинал свою карьеру и путем самообразования и написания компилятора С++, пришел к экспертному уровню. Общие детали реализации, сколько времени это заняло, что получилось в итоге и смысл затеи — тоже внутри.

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

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