Обновить
1416.33

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

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

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

Интегрируем смартконтракт в веб-приложение на Nodejs

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

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


UI приложения

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

Текстуры кода

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

Нет, это не опечатка. В этой заметке речь пойдет не о структурах, а именно о текстурах программного кода.
Читать дальше →

Я создал приложение, которое делает изучение алгоритмов и структур данных гораздо интереснее

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

Интерфейс CS-Playground-React

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

Я никогда не разбирался в математике. И я всегда привязывал сильные математические навыки к своей естественной способности преуспеть в программировании. Я чувствую, что мне приходится больше работать, чем другим (у которых есть врожденные навыки к математике), чтобы изучать одни и те же понятия. С этой идеей, глубоко укоренившейся в моем мозгу, я был уверен, что никогда не смогу научиться чему-либо, например, обходить деревья двоичного поиска, и как мысленно анализировать рекурсивные кошмары, такие как сортировка слиянием.

Зайдите на CS-Playground-React, простую браузерную JavaScript-песочницу для изучения и практикования алгоритмов и структур данных.

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

Структура и модель выполнения .NET Core приложений

Время на прочтение15 мин
Охват и читатели58K
В этой статье я рассмотрю компоненты платформы .NET Core 2.0, необходимые для загрузки и выполнения .NET Core-приложений, а также артефакты для двух возможных типов развертывания.

Текст объемный и рассчитан на:

  • начинающих разработчиков, которые только знакомятся с платформой .NET Core;
  • опытных разработчиков, выполняющих роль DevOps-инженеров в produсtion-окружении.

В статье не упоминается процесс создания приложений при помощи SDK (dotnet CLI), однако эта информация будет полезной для понимания, как работает SDK, а именно её основной компонент (ядро) — «драйвер» dotnet.dll, поскольку эта библиотека является управляемой сборкой и выполняется на .NET Core.

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

Секреты React и Redux при разработке веб-приложений

Время на прочтение10 мин
Охват и читатели10K
image Здравствуйте, уважаемые читатели! Совсем скоро у нас выйдет новая книга о технологиях React и Redux, оригинал — O'Reilly, май 2017

Чтобы обрисовать масштабы бедствия круг проблем, которые могут возникать при создании веб-приложений с использованием таких технологий, предлагаем сокращенный перевод статьи Сэмюэла Менденхолла (от 15 ноября), где рассмотрены тонкости работы с React, Redux, Typescript и рассказано, как устранить и упредить проблемы с производительностью в таких приложениях.
Читать дальше →

GoTo в ИТМО: Ботали неделю. Порвали 2 баяна

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


Совсем недавно закончилась очередная школа GoTo в СПб. В отличие от прошлой осени, в этот раз Питер порадовал нас большим количеством солнечных и теплых ноябрьских дней, их было целых два. В один из этих дней боевые единицы из юных и не очень программистов отправились добывать код: поцеловать незнакомых петербуржских девушек, пройти кастинг в Мариинку на эскалаторе, накормить Олега Георгиевича кровью невинного программиста и запечатлить лик Наполеона между ног коня.
В остальные дни мы по старинке делали мы не менее увлекательные проекты по биоинформатике, машинному обучению, распределенным системам и гоняли чаи на кухне с разговорами о прекрасном. Отчет ИТМО можно прочесть здесь.
Не возьмемся судить о том, что читателю интереснее, обо всем по порядку под катом.
Читать дальше →

In-Memory Computing Summit 2017 San Francisco

Время на прочтение2 мин
Охват и читатели2.5K
Не так давно, в конце октября, в Кремниевой долине прошел очередной In-Memory Computing Summit, одним из организаторов и спонсоров которого стала компания GridGain.

Теперь можно получить бесплатный доступ к видеоматериалам и слайдам, которые поделены на два раздела: основные тезисы и доклады.



На саммите было более прочитано более 40 докладов по распределенным системам и вычислениям в памяти. Среди выступавших были сотрудники компаний GridGain, Percona, AMY Robotics, Hazelcast, VoltDB Inc., Dell и других.

Далее мы отдельно упомянем несколько избранных докладов.

Лямбда-потрошитель

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

Хотя недавно была выпущена Java 9 с новой модульной системой, многие еще продолжают пользоваться привычной восьмой версией, с лямбдами. В течение полугода я плотно работал с ней и всеми ее нововведениями. Если с новыми методами коллекций и Optional все понятно, то с лямбдами не все так очевидно. В частности, как они реализованы и как влияют на производительность. И главное — чем они отличаются от старых добрых анонимных классов.


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

Fall Creators Update: важное для программиста

Время на прочтение11 мин
Охват и читатели12K
Классические дотнетовские приложения хороши тем, что они практически не ограничены в правах и, например, могут работать в трее. Зато универсальные приложения (UWP) более безопасны, и их можно устанавливать и удалять бесчисленное количество раз, не забивая систему и реестр мусором. Платформа UWP постоянно развивается, и, пока пользователи обновляются до Fall Creators Update, который вышел в октябре этого года, мы, разработчики, можем посмотреть на его новые и интересные возможности.

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

Стоимость операций в тактах ЦП

Время на прочтение17 мин
Охват и читатели84K
Всем доброго! Вот мы и добрались до тематики С++ на наших курсах и по нашей старой доброй традиции делимся тем, что мы нашли достаточно интересным при подготовке программы и то, что будем затрагивать во время обучения.

Инфографика:



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

Заразить во благо: как мы исполняем паразитный код

Время на прочтение6 мин
Охват и читатели3.5K
В последнее время мы много говорим про CRIU – систему живой миграции контейнеров. Но сегодня речь пойдет о еще более любопытной разработке: живом патчинге приложений, а также о библиотеке Compel, которая позволяет вытворять все эти безобразия, придавая гиперконвергентным системам новый уровень гибкости.

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

Путеводитель по исходникам LLVM

Время на прочтение6 мин
Охват и читатели8.8K
В моём углубленном курсе компиляторов прошлой осенью мы провели некоторое время, изучая дерево исходников LLVM. Миллион строк кода на C++ выглядят пугающе, но я нахожу это интересным упражнением, и, по крайней мере, некоторые студенты с этим согласны, и я подумал, что я попытаюсь написать что-то подобное. Мы будем использовать LLVM 3.9, но предыдущие (и, возможно, будущие) релизы не сильно отличаются.

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

Доступен PhpStorm 2017.3

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

PhpStorm 2017.3


Всем привет!


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


Для вступления, я думаю, достаточно. Стоит разве что добавить, что статья является вольным переводом страницы “What’s new”. Скачать новую версию можно по предыдущей ссылке или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также студенты и разработчики проектов с открытым исходным кодом.


Погнали! (Осторожно, под катом 2873.15 Кбайт картинок.)

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

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

В разрезе: новостной агрегатор на Android с бэкендом. Разработка под Android: выработка архитектуры

Время на прочтение5 мин
Охват и читатели6.2K
Вводная часть (со ссылками на все статьи)

В водной статье я уже писал о том, что планируемым клиентом для проекта должен стать клиент Android: доступный большой аудитории, лёгкий, функциональный, красивый, быстрый (не приложение, а мечта!). Если с основаниями выбора платформы всё понятно, то с тем как реализовывать на базе неё все перечисленные требования – ясно было далеко не всё.

Ранее разработкой под Android не занимался поэтому достаточно ценными источниками информации для меня являлись:


После изучения указанных источников вопросов с архитектурой Android и взаимодействия их компонентов не осталось. Однако остался один наиважнейший вопрос: какова будет структура самого приложения? Пара примеров и прототипов показала, при росте функционала всё быстро начинало превращаться в «лапшу»:

  • Логика работы с объектами Android (Activity, Preferences, TextView ….) перемешивалась с бизнес-логикой;
  • Объекты хранения фигурировали в коде построения интерфейса;
  • Модульное тестирование превращалось в ад из-за необходимости работы с родными объектами Android и их подмены экземплярами Robolectric;
  • Проверка асинхронного кода была возможна только на устройстве или эмуляторе (по принципу: «запустил-проверил-повторил»).
Читать дальше →

Сравнение качества кода Firebird, MySQL и PostgreSQL

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


Сегодняшняя статья несколько необычна. Как минимум по той причине, что вместо анализа одного проекта, будем искать ошибки сразу в трёх, а также посмотрим, где найдутся наиболее интересные баги. А самое интересное — мы выясним, кто молодец и пишет самый качественный код. Итак, на повестке дня — разбор ошибок в коде проектов Firebird, MySQL и PostgreSQL.
Читать дальше →

Наипростейший RESTful сервис на Kotlin и Spring boot

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

Со времен релиза Kotlin прошло уже более года, да и Spring boot претерпел изменения. Наткнувшись на статью о том как написать простой RESTful сервис используя Kotlin и Spring boot, захотелось написать о том как же это можно сделать сегодня.


Эта небольшая статья ориентированна на тех кто никогда не писал код на Kotlin и не использовал Spring boot.

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

Рождение Software Tools: как и зачем появились GREP и AWK

Время на прочтение9 мин
Охват и читатели9.3K
image
Этим летом мне на глаза попалось эссе Брайана Кернигана «Иногда старые способы — лучшие», опубликованное в честь 25-летнего юбилея журнала IEEE Software в 2008 году. В нем профессор Керниган рассказывал о том, какие инструменты он использует в работе.

В тот момент он был занят двумя сложными проектами — один из них подразумевал экспертный анализ проекта на 100 000 строк кода, написанный на C и Assembler в 1990 году, под Windows XP; другой — перенос кода с экзотического языка L1 на не менее экзотический язык L2 при помощи программы, написанной на неназванном скриптовом языке под Linux. Удивительно, но для столь разных задач профессор Керниган вместо IDE использовал один и тот же набор инструментов — grep, diff, sort, awk, wc и прочих «старых знакомых» из эпохи раннего Unix. Более того, многие инструменты и IDE конца прошлого десятилетия он подверг критике за неудобность и несовершенство.

Действительно, к некоторым вещам в своей жизни мы привыкли настолько сильно, что уже воспринимаем их за данность и критиковать их нам даже не приходит в голову — нам кажется, будто они существовали всегда. Подобный образ мышления помогает адаптироваться к потоку новой информации и неизбежен в современном мире, но давайте не будем сегодня отказывать себе в удовольствии «спуститься на уровень ниже», чтобы увидеть, как появилась сама идея программных инструментов (они же далее по тексту — «software tools», утилиты, команды Unix).
Читать дальше →

Сложно ли разрабатывать ПО?

Время на прочтение4 мин
Охват и читатели4.4K
Как-то на днях я с товарищем разговорился на тему того, что есть процесс разработки, работают ли программисты или давят клопов? Может ли любой стать разработчиком? В чем вообще сложность процесса разработки ПО? Надеюсь наш диалог поможет разобраться в деле тем, кто сам не занимается программированием или просто любит поразмышлять о своем любимом занятии.
Читать дальше →

Регулярные выражения для самых маленьких

Время на прочтение11 мин
Охват и читатели241K
Привет, Хабр.

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

Некоторые из них для наглядности будут показаны на примере языков программирования PHP или JavaScript, но в целом они работают независимо от ЯП.

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

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

Поехали!


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

Рефакторим вместе с Roslyn

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

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


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

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