25-го августа мы (FunCorp) совместно c CocoaHeads провели iOS митап. А сегодня для тех, кто не смог посетить мероприятие и посмотреть трансляцию, выкладываем записи докладов.
Читать полностью »
25-го августа мы (FunCorp) совместно c CocoaHeads провели iOS митап. А сегодня для тех, кто не смог посетить мероприятие и посмотреть трансляцию, выкладываем записи докладов.
Читать полностью »
Язык Java появился в уже далёких в 1990-х годах и менее чем за 5 лет стал одним из трёх самых популярных языков на планете. Сегодня, в том числе благодаря развитию мобильного мира, Java продолжает быть современным и невероятно востребованным представителем мира IT.
Но популярность вкупе с возрастом имеет и обратную сторону медали — за эти 23 года было издано огромное количество литературы. Некоторые книги стали настоящей классикой, поэтому именно на них ориентируются преподаватели на учебных курсах даже сегодня в 2018 году. Однако это не означает, что за последние годы не издавалось хороших книг. В подтверждение этого, автор GeekBrains Илья Бубнов изучил онлайн-магазины, чтобы найти десяток самых рейтинговых книг по Java, изданных или переизданных на русском языке за последний год.
Читать полностью »
Расскажем о том, как мы принимали решение о применении blockchain-сети для нового проекта.
Эта история случилась в конце весны 2018 года. Мы отказались от блокчейна (AplaNet), предложенного стейкхолдером проекта и выбрали иное решение для продукта (Emercoin).
NOTE: в данный момент команда AplaNet решила большинство проблем, которые мы описали ниже. Так что все моменты, на которые мы обратили внимание, имели место быть в конце весны.
Мы работали над проектом, для решения бизнес-задач которого нужен блокчейн (реально нужен, а не как обычно). На его примере будем говорить о критериях выбора блокчейн-сети.
К сожалению, подробнее рассказать бизнес-кейс проекта мы, на данный момент, не можем. Поэтому статья не об этом.
Всем привет!
А мы тут плюшками балуемся запускаем второй поток курса «Разработчик Java Enterprise». Бессменный создатель и преподаватель курса — Виталий Иванов, написал вот по этому поводу статью даже, которая, как надеемся, покажется вам полезной :)
Так что поехали :)
Данная статья посвящена изучению API к спецификации JavaEE Concurrency (JSR 236), определяющий стандарт выполнения параллельных задач в JavaEE контейнере, используя концепцию управляемых ресурсов. Выход седьмой версии JavaEE сделал возможным запуск параллельных задач в Enterprise-контейнерах, предоставляя разработчику удобные средства и утилиты для работы с многозадачностью. До того самого момента, вся многозадачность отдавалась на откуп конкретной реализации используемого сервера приложений, самостоятельно принимающего решение об оптимизации выполнения задач. Нарушение этого принципа расценивалось как плохая практика построения архитектуры Enterprise-приложений. Вследствие чего, разработчику не рекомендовалось создавать новые потоки, а иногда и запрещалось подобное поведение на уровне контейнера.
Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.
Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3Читать полностью »
Spring Framework является одним из самых сложных фремворков для понимания и изучения. Большинство разработчиков изучают его медленно, через практические задачи и гугл. Этот подход не эффективен, так как не даёт полной картины и при этом требует больших затрат.
Я хотел бы предложить вам принципиально новый подход к изучению Спринга. Он заключается в том, что человек проходит через серию специально подготовленных туториалов и самостоятельно реализует функционал спринга. Особенность этого подхода в том, что он, помимо 100%-го понимания изучаемых аспектов Spring даёт ещё большой прирост в Java Core (Annotations, Reflection, Files, Generics).
Статья подарит вам незабываемые ощущения и позволит почувствовать себя разработчиком Pivotal. Шаг за шагом, вы сделаете ваши классы бинами и организуете их жизненный цикл (такой же, как и в реальном спринге). Классы, которые вы будете реализовывать — BeanFactory, Component, Service, BeanPostProcessor, BeanNameAware, BeanFactoryAware, InitializingBean, PostConstruct, PreDestroy, DisposableBean, ApplicationContext, ApplicationListener, ContextClosedEvent.
Читать полностью »
Вот решил поведать о библиотеке, которую написал недавно. Возможно кому-то и пригодится.
Это 2D framework на языке Rust для рендеринга непосредственно в Linux Frame Buffer /dev/fb0.
Задача была — на Raspberry Pi выводить на экран / телевизор простые 2D сцены. Raspberry Pi работает под управление собранного при помощи YoctoProject custom headless Linux. Window Managers отсутствуют, так же, как и OpenGL. Остается только Frame Buffer.
В случае с Frame Buffer обрабатывать приходится каждый пиксель. Так как я для Raspberry Pi пишу в основном на GoLang, то решил написать библиотеку на Go. Очень быстро понял что Go не подходит мне по производительности. Массивные операции с памятью он не смог выполнить за разумное время.
Тогда я обратил внимание на Rust, который выполнял похожие тесты намного быстрее.
Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for
и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.
В итоге все свои эксперименты я вылил на GitHub.
Если хочешь в чем-то разобраться — учись сразу у лучших. Сегодня на мои вопросы отвечает бог корутин и concurrency, Рома elizarov Елизаров. Мы поговорили не только о Kotlin, как вы могли бы подумать, но ещё и о куче смежных тем:
С появлением Python 3 довольно много шума об “асинхронности” и “параллелизме”, можно полагать, что Python недавно представил эти возможности/концепции. Но это не так. Мы много раз использовали эти операции. Кроме того, новички могут подумать, что asyncio является единственным или лучшим способом воссоздать и использовать асинхронные/параллельные операции. В этой статье мы рассмотрим различные способы достижения параллелизма, их преимущества и недостатки.
Читать полностью »