Pull to refresh
65
0
Send message

Как BBC и Гарвард вырастили целое поколение первых программистов

Reading time8 min
Views3.9K

На Хабре сложно найти человека, который не слышал бы о знаменитом гарвардском курсе лекций по программированию Computer Science 50, который в доступной форме преподносит слушателю основы программирования и подходит даже для тех, кто совершенно не был связан с IT, но решил начать изучать эту специальность. Несколько лет назад его даже перевели на русский язык.

Но это не первый подобный замысел, попытки поднять компьютерную грамотность предпринимались и раньше. В начале 80-х корпорация BBC при поддержке правительства Великобритании запустила необычный курс дистанционного обучения и популяризации компьютерных технологий под названием «BBC Computer Literacy Project». На текущий момент это самый беспрецедентный замысел такого рода по своим масштабам: он выходил на протяжении почти десяти лет, собирая огромную аудиторию. В те годы Великобританию по праву можно было назвать самой продвинутой страной в сфере Информационных технологий, тогда она обогнала даже США.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments0

Игры, которые играют в людей: что книга “Игра в цифры” рассказывает об игровой аналитике

Reading time9 min
Views9K
Из когда-то нишевого сегмента рынка игры сегодня превратились в высокодоходный транснациональный бизнес, опережающий по масштабам музыкальную индустрию и кинематограф. В игры уже вовлечено более 2,5 млрд человек (и это совсем не предел), а выручка ежегодно бьет новые рекорды. Причина этого — не только в доступности игр и в росте свободного времени у населения: под капотом современных игр находятся технологии вовлечения, эффективно использующие математику, поведенческую экономику, психологию и дизайн. А в основе этих технологий — системы игровой аналитики: именно они позволяют отследить поведение пользователей и определить наиболее “цепляющие” инструменты. И, в конечном счете, сделать так, чтобы люди проводили в играх как можно больше времени, получали максимум удовольствия — и приносили максимум денег разработчикам.

Аналитика, таким образом, — это кровеносная система современных игр, особенно в сегменте free-to-play (большинство бесплатных игр, в которых вам оставляют возможность заплатить за улучшения).

image

В конце прошлого года вышла книга Василия Сабирова “Игра в цифры” — первое российское издание, полностью посвященное игровой (и продуктовой) аналитике. Под катом — обзорный пересказ книги.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments19

Маленькие Python для маленьких embedded-программистов: CircuitPython и MicroPython для MeowBit

Reading time7 min
Views12K
На Хабре уже немало писали про обучающий микрокомпьютер BBC micro:bit, который в 2016 раздали всем британским школьникам, и сейчас он продаётся по $15. С прошлого года появились в продаже и micro:bit v2, в которых ОЗУ расширена с 16 КБ до 128 КБ. Неизменным остался форм-фактор: две кнопки для ввода, матрица 5х5 светодиодов для вывода, всё что сверх этого – подключайте через 25-контактный edge connector. Очевидно, что создатели задумывали micro:bit не как самостоятельное устройство, а как «мозг» для более сложного проекта со внешними датчиками, индикаторами, релюшками, сервоприводами и т.п. – этакий «детский Arduino».

Энтузиасты из Шэньчжэня, взявшие себе название KittenBot, решили заполнить пустующую нишу «обучающий микрокомпьютер, который как micro:bit, но со всем необходимым для нескучных проектов — уже внутри». Их плата MeowBit, выпущенная в 2018, стоит $40; сохраняет edge connector, совместимый с micro:bit; и добавляет четыре кнопки-«джойстик», полноцветный TFT-экран 160х128, динамик, и силиконовую оболочку с отсеком для аккумулятора – всё, что нужно для создания мини-«геймбоя» размером с кредитную карточку. У MeowBit 96 КБ ОЗУ – до выхода micro:bit v2 это было ещё одним его существенным превосходством – и 2 МБ флеш-памяти, по сравнению с 256 КБ у micro:bit v1 и 512 КБ у micro:bit v2. Игры для MeowBit можно писать на MakeCode Arcade (диалект Scratch от Microsoft), Kittenblock (собственный диалект Scratch от KittenBot), или на MicroPython. На сайте KittenBot есть туториалы по использованию этих трёх языков, но весьма бедные, и увы, только на китайском.



MicroPython создавался для тех, кто привык программировать микроконтроллеры на Си, но хотел быиспользовать при этом синтаксис Python.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments0

Сертификация ISO27001

Reading time7 min
Views20K
Однажды мой хороший друг сказал мне: «вся индустрия аудита основана на том, что люди друг другу врут». Это как нельзя лучше отражало истинную причину почему банкам и другим финансовым институтам нужно получать заключение внешних аудиторов каждый год – для того, чтобы другие институты верили их финансовой отчетности. 



Похожая ситуация в ИТ. Любая компания может сказать: «мы защищаем свои системы и следим за безопасностью передачи данных. Но так ли это? И насколько хорошо защищают?  Cертификация ISO 27001 отвечает на эти вопросы за вас, и позволяет сэкономить время на доказательствах. Под катом пример подготовки к сертификации ISO 27001 одной маленькой, европейской ИТ компании. 
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments15

Продолжая про ГМО человека: как создать человеко-свиной гибрид

Reading time7 min
Views9.9K
image
Кристаллическая структура S. aureus Cas9 в комплексе с crРНК и её целевой ДНК

В прошлых постах вы просили подробнее рассказать про CRISPR/Cas9 и подходы к редактированию генома. Я просто не стал включать столь объемный материал в прошлый пост. А в этот не включу, например метод TALEN, который потенциально может быть более точным и имеет свои плюсы. Но дорогой, да.

Попробуем пройтись по уже достаточно хорошо описанному методу генетической модификации с помощью CRISPR-Cas9 и посмотрим чуть шире на перспективы, которые он для нас открывает. Меня дико заинтересовало направление по ксеногенной трансплантации от свиней к человеку. Первые, «докоррекционные» методы показали, что такой свиной трансплантат убивается организмом в течение нескольких минут. Но метод не отбросили совсем. Все-таки это — перспективный способ не ждать пока погибнет очередной потенциальный донор органов, а вырастить их заранее. Потом выяснилось, что свиньи еще и поголовно носят в себе пачку специфичных ретровирусов, которые встроены в их геном и могут вызвать эпидемию нового ксенозооноза. И вирусы тоже как-то надо выковыривать перед трансплантацией. И вот где-то тут выходят на сцену люди в белых халатах, которые делают что-то непонятное в своих лабораториях…
Читать дальше →
Total votes 39: ↑37 and ↓2+61
Comments36

Ink: инструмент для создания текстовых квестов как из лучших воспоминаний детства

Reading time8 min
Views17K


Наверное, текстовые квесты одни из самых простых видов игр. Хоть там и требуется принимать решения, в них нет стратегических задач, а выбор заранее предопределен. Тем не менее, простые не значит плохие. Возможность влиять на сюжет книги выглядит очень привлекательно. Читатели практически всегда вступают в диалог с книгами, особенно если они хорошо написаны, переживают за героев, ругают их за нелогичные поступки, спорят с автором о сюжете. Текстовые квесты позволяют чувствовать себя полноправным участником происходящего и влиять на читаемую историю, чего так долго не хватало поклонникам обычных книг. 
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments25

«Мы сваляли дурака»: как и почему IBM потеряла рынок персональных компьютеров

Reading time9 min
Views46K
image

История поражений и провалов не менее интересна, чем история взлетов. Тем более, когда речь идет об IBM — легендарном “голубом гиганте”, определявшем развитие информационных технологий на протяжении всего 20 века.

12 августа 1981 г. Дон Эстридж представил публике персональный компьютер IBM PC. Презентация не вызвала ажиотажа, но уже через несколько лет компьютерами от IBM пользовались миллионы людей. А еще спустя немного времени от лидерства практически ничего не осталось: масштабный рынок ПК был вчистую проигран конкурентам, и в 2005 г. остатки этого бизнеса были проданы китайской компании Lenovo.

В недавно вышедшей монографии “IBM: Падение и возрождение великой компании“ Д. Кортада попытался ответить на вопросы, как и почему, имея колоссальные ресурсы и опыт, корпорация не смогла удержаться на рынке персональных компьютеров.

Мы выбрали из исследования главное.
Читать дальше →
Total votes 44: ↑42 and ↓2+61
Comments136

Как написать простого бота для ВК и Телеграм

Reading time14 min
Views51K


Мы уже упоминали, как мы предоставляем бесплатные VPS для студентов, чтобы они учились программировать. Один из наших подопечных Павел сделал простеньких телеграм и ВК ботов для FAQ. Они очень простые, тем не менее, начинающему программисту не помешают комментарии опытных ребят — поэтому публикуем его рассказ — Павел будет рад, если в комментариях ему дадут советы.
Читать дальше →
Total votes 27: ↑22 and ↓5+29
Comments12

Bedrock Linux: лего-набор для создания идеального linux-дистрибутива

Reading time5 min
Views16K


С момента появления Linux достаточно скоро возникло множество дистрибутивов: Slack, RedHat, Debian, SUSE и т. д. Тогда же возникла и проблема выбора дистрибутива, ведь каждый из них имеет свои особенности и преимущества, которые делают его особенным. RedHat и Debian наиболее стабильные и консервативные из дистрибутивов, Ubuntu заточен на удобство и имеет прекрасный пользовательский интерфейс, Gentoo — свобода выбора и гибкость.

У каждого пользователя Linux были моменты, когда ему не хватало некоторых функций, реализованных в других дистрибутивах. Многим в свое время не понравилось, что Debian перешел на systemd и они создали на его основе новый дистрибутив — Devuan. Некоторые перешли на Gentoo, где пользователь может создать среду с двумя системами инициализации: как с openrc, так и с systemd.

В разных дистрибутивах этот вопрос решается по-разному. Установка пакета, который отсутствует в штатном репозитории, решается с помощью docker-контейнеров, или использованием систем самодостаточных пакетов snap и flatpak. Можно даже ставить RPM пакеты на системах с пакетным менеджером DEB. В Gentoo имеется поддержка RPM и DEB пакетов. Все это работает, однако плохо масштабируется и не очень стабильно.

Создатели Bedrock Linux пошли дальше и создали полноценный мета-дистрибутив. В нем возможно использование не только пакетов, но и компонент различных Linux дистрибутивов, как кубиков Лего. В одном окружении можно создать систему из нескольких Linux OS, например установку дополнительных пакетов Ubuntu поверх базовых компонент Debian и Arch. Установочный скрипт доступен для следующих платформ.

  • aarch64;
  • armv7hl;
  • armv7l;
  • mips64el;
  • mips64;
  • mips;
  • mipsel;
  • ppc64;
  • ppc64le;
  • ppc;
  • s390;
  • x86_64;
  • x86;
Читать дальше →
Total votes 20: ↑18 and ↓2+31
Comments13

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

Reading time5 min
Views11K


Рокеры и панки, рейверы и хип-хоперы — кажется, еще вчера музыка была для молодежи “важнейшим из искусств”, определяла мировоззрение, объединяла и разделяла на субкультуры.
Но всё меняется, — и молодежь не исключение. В своем эссе культуролог Шон Монахан утверждает: музыка перестала быть определяющим стержнем молодежной культуры, а ее место заняли видеоигры. И этим уже вовсю пользуются производители товаров и контента, которые целенаправленно выстраивают маркетинг вокруг игр и геймеров.

Как же и почему это происходит? Мы выбрали из эссе главное.
Total votes 22: ↑21 and ↓1+35
Comments28

Лайфхак: как спарсить гигабайт double-ов в секунду

Reading time6 min
Views24K


Как в коде на C++ прочитать значение double из строки?

std::stringstream in(mystring);
while(in >> x) {
   sum += x;
}

На Intel Skylake с компилятором GCC 8.3, такой код парсит 50 МБ/с. Жёсткие диски запросто обеспечивают последовательное чтение со скоростью в несколько ГБ/с, так что вне всякого сомнения, нас ограничивает не скорость чтения с диска, а именно скорость парсинга. Как его ускорить?

Первое, что напрашивается – отказаться от удобств, предоставляемых потоками в C++, и вызывать strtod(3) напрямую:

do {
    number = strtod(s, &end);
    if(end == s) break;
    sum += number;
    s = end; 
} while (s < theend);

Скорость вырастает до 90 МБ/с; профайлинг показывает, что при чтении из потока выполняется ~1600 инструкций на каждое читаемое число, при использовании strtod – ~1100 инструкций на число. Стандартные библиотеки Си и C++ можно оправдать требованиями универсальности и переносимости; но если ограничиться парсингом только double и только на x64, то можно написать намного более эффективный код: хватит 280 инструкций на число.
Читать дальше →
Total votes 64: ↑62 and ↓2+100
Comments62

ГМО-люди – будущее биотехнологий уже здесь

Reading time7 min
Views27K

Интересно, чем закончатся наши исследования

Кажется, прошлая тема про ГМО-лосося весьма неплохо зашла Хабрачитателям. Пока мы готовим материал по модификации растений, я предлагаю посмотреть не менее интересную тему — генная модификация Homo Sapiens. Это очень спорная и холиварная тема, игнорировать которую бесполезно.

Сразу дам несколько тезисов, которые могут показаться спорными, но которые так или иначе надо решать в научном сообществе:

  1. Мы вырождаемся. Каждый год выживают все более слабые особи, которые рожают детей и отягощают генофонд. Это надо чинить.
  2. Простые запреты не помогут. Если эксперименты запретят в Европе, то их выполнит, например, Китай.
  3. На лечении генетических заболеваний мы не остановимся. Рано или поздно подключатся военные со своими суперсолдатами и те, кто хочет более сильных и умных детей с голубыми глазами.

Попробую дать обзор на реально существующие техники вмешательства в генотип людей и заодно разберем, чем нам это грозит.
Читать дальше →
Total votes 77: ↑71 and ↓6+105
Comments251

Рок-звёзды без премий: как Netflix хакнул систему мотивации сотрудников

Reading time7 min
Views68K
image

В 1998 г. мало кому известный стартап под названием Netflix, только что запустивший собственный сайт, платил своим сотрудникам значительно меньше рынка: в фирму семейного типа шли не за большими и быстрыми деньгами.

Сегодня всё иначе. Netflix — крупнейшая международная IT-компания и крайне щедрый работодатель с необычной, даже по меркам Кремниевой долины, системой оплаты труда. В 2018 году стриминговый сервис стал самым популярным местом работы среди соискателей, опередив Google и Apple.

Мотивационные схемы — часть и продолжение корпоративной культуры Netflix. За прошедшие десятилетия она серьёзно эволюционировала и к 2010-ым окончательно выкристаллизовалась в стройную систему. Сначала — в виде опубликованного в Сети “Корпоративного справочника Netflix” из 127 слайдов, затем — как манифест Netflix Culture, а недавно — как книга с громким названием “Никаких правил” (No Rules Rules).

В этой статье мы рассказали самую интересную часть из этой книги: как именно устроена система мотивации в Netflix и что нужно делать компании, чтобы рок-звезды в ней выкладывались по полной?

И почему отказ от премий сотрудникам стал фактором роста компании?
Читать дальше →
Total votes 111: ↑104 and ↓7+129
Comments142

Анализируем время ответа собеседника

Reading time3 min
Views9K


С появлением мессенджеров коммуникация перешла на новый уровень — возможность мгновенного доступа к собеседнику воспринимается теперь как должное.

Но замечали ли вы, как на ваши ощущения от общения влияет скорость его ответа? Какое время ответа вообще считается приемлемым?

Можем ли мы сказать, что проявляем неуважение, когда отвечаем на следующий день? Через неделю? Через месяц?

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

Достаем сырые данные


Для исследования в нашем случае лучше всего подойдет Telegram. Прежде всего, потому что у него есть удобный api для Python.
Читать дальше →
Total votes 22: ↑19 and ↓3+32
Comments16

20 лет VideоLAN Client Player: 8 неочевидных возможностей программы

Reading time6 min
Views29K

20 лет — большой срок, даже Windows не сильно старше. Многие удачные проекты, сохраняющие популярность годами, не выдерживали испытания временем и сдулись: помните Winamp, бесспорного фаворита среди аудио-плееров? Или foobar2000 — универсальный, удобный, имеющий огромное количество возможностей… Настоящий медиа-комбайн, только не снискал большой популярности. Или не менее культовый Media Player Classic, заброшенный много лет назад.

VLC это универсальный медийный комбайн, который успешно пережил их всех. Но подавляющее большинство использует его на едва ли на 1% всех возможностей, исключительно как обычный плеер для видеофайлов. В этой статье я расскажу о интересных и неочевидных возможностях VLC: например, как использовать его с PornHub, торрентами, как рисовать ASCII-код и многое другое.
Читать дальше →
Total votes 44: ↑42 and ↓2+59
Comments40

История ГМО лосося, который все же попал на рынок

Reading time6 min
Views37K
image
Обычная и доработанная версии семги

Я не перестаю удивляться луддитам нашего времени. Чаще всего это какой-то особенный сплав дремучести, магического мышления и страха перед непонятными вещами, которые делают ученые в лабораториях.

Я думаю, что на Хабре ни у кого нет особых сомнений в опасности таких деятелей, как Сералини, который доказывал канцерогенный эффект от ГМО-кукурузы у крыс. Статью в итоге отозвали по причине обнаруженных грубых методологических ошибок. Поэтому, сегодня мы будем говорить о правильном подходе к ГМО и о том, что уже интересного успели запустить в продакшен. Начнем с лосося и форели. О том, чем отличается дикий вариант от фермерского, как оценивают лососевый цвет, зачем его модифицируют и когда мы увидим на прилавке новую, доработанную версию этой рыбы.
Читать дальше →
Total votes 80: ↑76 and ↓4+106
Comments250

Как войти в игровой бизнес и не сойти с ума: обзор путеводителя по геймдев-индустрии

Reading time9 min
Views15K
image

Литературы и разных материалов по разработке игр сейчас хватает. Геймдизайн и левел-дизайн, игровая аналитика и психология геймеров, нарратив и история популярных проектов — рассказывают много, содержательно и интересно, по крайней мере для тех, кто только “вкатывается” в индустрию геймдева. Которая стремительно растет: миллиардные сделки у всех на слуху и рисуют перед начинающими разработчиками будоражащие перспективы.

И вот тут проблема. Да, игровая индустрия давно уже стала большим конвейерным бизнесом, со своими собственными законами, процессами, практиками, терминами, этикетом и т.д., общими для участников рынка. Но, тем не менее, этот сверхважный аспект часто остается за кадром, — как своеобразный эзотерический опыт, недоступный новичкам и людям со стороны. Как следствие — часть разработчиков выходят на рынок вслепую, без ориентиров, наступают на разного рода грабли и тратят ресурсы на изобретение велосипедов. И это одна из причин, почему далеко не всем, пусть даже и с многообещающим продуктом, удается выжить в этом бизнесе.
Как раз этот информационный лаг и закрывает книга “Игра как бизнес. От мечты до релиза” (2020) Алексея Савченко.
Читать дальше →
Total votes 19: ↑18 and ↓1+31
Comments2

VPN вас не спасет: как собирают персональные данные через SuperСookies

Reading time11 min
Views39K


Томас Даннинг говорил: «При 300 процентах [прибыли] нет такого преступления, на которое он [капитал] не рискнул бы, хотя бы под страхом виселицы». Эти слова, сказанные в XIX веке, актуальны до сих пор. Компании, которые ведут бизнес в интернете, изобретают все более изощренные способы слежки за пользователями. 

История кукисов пережила несколько скандалов, связанных с нарушениями приватности, работа браузеров с ними постепенно менялась и, казалось бы, окончательно вошла в цивилизованное русло. Мы научились защищать свои данные и кушать печеньки стало относительно безопасно.

Но потом появились Supercookies — довольно липкая штука, которую буквально не обойти. 

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

Как наивность разработчиков создала основы для сбора персональных данных 


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

Эти проблемы зарождались, когда компьютеры были большими, а программисты — несколько наивными. Например, одна из уязвимостей сотовых сетей возникла по той же причине наивности: Страх и ужас SS7
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments34

Cheney on the M.T.A.: компилятор, в котором стек служит заодно и кучей

Reading time8 min
Views4.6K
 
Did he ever return? No, he never returned,
And his fate is still unlearned,
He may ride forever ‘neath the streets of Boston,
He’s the man who never returned.

“Charlie on the M.T.A.”, 1949

1. Замыкания


Одна из удобных возможностей современных языков программирования – вложенные функции:

def bubble(arr, comp):

    def swap(i, j):
        temp = arr[i]
        arr[i] = arr[j]
        arr[j] = temp

    flag = True
    while flag:
        flag = False
        for i in range(len(arr) - 1):
            if comp(arr[i], arr[i+1]) > 0:
                swap(i, i+1)
                flag = True

Сама эта возможность не нова: она была уже в Алголе (1958) и многим знакома из Паскаля (1970). В компиляции вложенных функций нет ничего сложного: например, в стековом кадре внутренней функции может храниться указатель на стековый кадр внешней функции, чтобы внутренняя функция могла обращаться к параметрам и локальным переменным внешней. Кто-то может вспомнить, что инструкции enter и leave, появившиеся в 80186 (1982), реализуют именно такую поддержку вложенных функций (хотя я не встречал ни один компилятор, который бы её задействовал).

Сложности начинаются, если язык позволяет передать внутреннюю функцию наружу внешней:

def by_field(name):

    def comp(x, y):
        return x[name] – y[name]

    return comp

bubble(my_records, by_field("year"))

Как внутренняя функция сможет обращаться к параметрам и локальным переменным внешней после того, как возврат из внешней функции уничтожил её стековый кадр? Каким-то образом внутренняя функция должна «захватить» используемые переменные вместе с собой; функция вместе с захваченными извне переменными называется «замыканием». Паскаль такое уже не поддерживает;
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments7

Как Amazon тратил по $500 млн на разработку провальных игр и почему ничего не вышло

Reading time4 min
Views40K


В 2012 году в структуре Amazon возникла собственная студия по производству компьютерных игр. По замыслу Джеффа Безоса, Amazon Game Studios должна была стать успешной и эффективной частью корпоративной экосистемы. Однако за прошедшие восемь лет добиться этого, увы, так и не удалось. Как же так вышло, что богатейшая компания, у которой получалось практически всё, не сумела завоевать рынок геймдева?

Ответы на этот вопрос нашел журналист Джейсон Шрайер (автор книги “Кровь, пот и пиксели”). Публикуем главные тезисы расследования.
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments102

Information

Rating
Does not participate
Works in
Registered
Activity