Pull to refresh
-18
0
Send message

Отказ от create-react-app и создание собственного шаблона для React-приложений

Reading time9 min
Views44K
Автор статьи, перевод которой мы сегодня публикуем, предлагает React-разработчикам отойти от использования create-react-app (CRA) и создать собственный шаблон для React-приложений. Здесь речь пойдёт о преимуществах и недостатках CRA, а так же будет предложено решение, которое способно заменить create-react-app.


Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments12

Чего бы почитать. Малоизвестные и замершие научно-популярные статьи и блоги

Reading time2 min
Views25K
Здесь я постарался собрать малоизвестные статьи и блоги, которые заслуживают больше просмотров.

myak555 Мир сквозь нефтяные очки, автор нефтяник. Десятки статей, где популярно изложено о пике ресурсов и world3, мальтузианстве и уравнениях Ферхюльста, нефти и сланцах. Начните с этого поста.

Роберт Ибатуллин, Вымышленные миры
Старая страничка, есть любопытные прогнозы на ближайшие десятилетия. Будущее 2008 года.

astronet.ru Астрономическая научная картинка Больше ста популярных статей о новых наблюдениях и достижениях астрономии, начиная с 2003 до 2014 года. Начиная с 2010 становится спорадическим, а потом замерзает. Сейчас нечто подобное можно найти на elementy.ru

flavorchemist Химия вкуса, пищевая промышленность. Предупреждение: После чтения мороженое и йогурты станут менее вкусными.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments6

Про автоматизацию подбора аккордов

Reading time17 min
Views59K
Меня давно занимал вопрос: «а что, если попробовать прогнать цифровую запись песни через преобразование Фурье, посмотреть зависимость спектра от времени и попытаться вытащить из полученной информации аккорды песни?». Вот, наконец, нашел время попробовать…
Читать дальше →
Total votes 137: ↑135 and ↓2+133
Comments42

Теория счастья. Закон арбузной корки и нормальность ненормальности

Reading time10 min
Views74K
Представляю на суд читателей Хабра неупорядоченные главы из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.



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

Читать дальше →
Total votes 118: ↑117 and ↓1+116
Comments250

Больше не user friendly: как интернет-монополии убивают конкуренцию и превращают пользователей в товар

Reading time14 min
Views27K
Если вы ещё не заметили — интернет уже не та либертарианская утопия, свободное конкурентное пространство и стартовая площадка с равными условями для каждого.

Такое время было, но прошло: расцвет эпохи гиков в интернете пришёлся на нулевые годы XXI века. Десятые годы стали эпохой транзита от изобретателей к маркетологам, предпринимателей к менеджерам, стартапов к корпорациям, конкуренции к монополизации.

Символическим концом этого транзита можно считать 2018 год, когда Google официально отказался от своего знаменитого морального императива Don't be evil. Вместо него теперь на главную Google в пору вешать не менее знаменитое Greed is good.

На смену интернету романтического предпринимательства приходит интернет крупного капитала. Вместо старого-доброго единства «ты и я одной крови», гик и юзер, стартапер и пользователь, произошло расслоение на антагонистичные сущности: корпорации против пользователей. Само слово «пользователи» отражает парадигму ещё старого интернета, когда сервисы ждали людей, которые ими воспользуются. Теперь критерием эффективности интернет-бизнеса становится умение удерживать человека, чтобы пользовать уже его.


«Трон: наследие»: битва пользователя против программы

Современный интернет всё больше опирается не на возможность быть полезным людям, а пользоваться ими. Польза для юзера уже не основная их задача, а инструмент, помогающий приманивать людей побольше и удерживать их подольше, чтобы пользоваться ими.
Читать дальше →
Total votes 104: ↑88 and ↓16+72
Comments354

Как я восстанавливал данные в неизвестном формате с магнитной ленты

Reading time8 min
Views39K

Предыстория


Будучи любителем ретро железа, приобрёл я как-то у продавца из Великобритании ZX Spectrum+. В комплекте с самим компьютером мне достались несколько аудиокассет с играми (в оригинальной упаковке с инструкциями), а также программами, записанными на кассеты без особых обозначений. На удивление данные с кассет 40-летней давности хорошо читались и мне удалось загрузить почти все игры и программы с них.



Однако, на некоторых кассетах я обнаружил записи, сделанные явно не компьютером ZX Spectrum. Звучали они совершенно по-другому и, в отличие от записей с упомянутого компьютера, не начинались с короткого BASIC загрузчика, который обычно присутствует в записях всех программ и игр.

Какое-то время мне не давало это покоя — очень хотелось узнать, что скрыто в них. Если бы получилось прочитать аудио сигнал как последовательность байтов, можно было бы поискать в них символы или что-то, что указывает на происхождение сигнала. Своего рода ретро-археология.
Total votes 177: ↑177 and ↓0+177
Comments98

15 малоизвестных команд Linux

Reading time3 min
Views315K
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
Читать дальше →
Total votes 333: ↑274 and ↓59+215
Comments224

Недокументированные возможности недокументированных возможностей: Передача ref в другой поток

Reading time5 min
Views12K
Никогда не приходил в голову вопрос: "а как сохранить/передать в другой поток ссылку на поле?"? Логичным предположением будет «передам ref в метод и сохраню. Стоп, oh shi~». Да, ref не сохраняются (а ещё, нельзя использовать на них замыкания, так что создать функцию внутри такого метода и создать из её поток тоже не получится). Но зато можно превратить ref в TypedReference с помощью недокументированного ключевого слова __makeref. Увы, TypedReference нельзя напрямую сохранить в поле и не наследует от System.Object, так что каст привычными методами тоже невозможен (да и вообще на их использование наложена целая куча ограничений). Казалось бы, тупик. Но это ещё не всё — есть ещё RuntimeArgumentHandle, который обладает свойствами TypedReference, за одним исключением — после хитрого каста в System.Object его ещё можно использовать до тех пор, пока жив кадр стека, в котором он был создан. Об этом этот пост.
Читать дальше →
Total votes 47: ↑41 and ↓6+35
Comments12

Рассказ о том, как я ворую номера кредиток и пароли у посетителей ваших сайтов

Reading time11 min
Views167K
Продолжение: Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
Представляем вам перевод статьи человека, который несколько лет воровал имена пользователей, пароли и номера кредитных карт с различных сайтов.


То, о чём я хочу рассказать, было на самом деле. Или, может быть, моя история лишь основана на реальных событиях. А возможно всё это — выдумка.

Выдалась однажды такая неделя — безумное время, когда всех вокруг тревожила безопасность. Ощущение было такое, что новые уязвимости появляются ежедневно. Мне было не так уж и просто делать вид, будто я понимаю, что происходит, когда меня об этом спрашивали близкие люди. Их беспокоила перспектива того, что их взломают, что их данные утекут неизвестно куда. Всё это заставило меня на многое взглянуть по-новому.

В результате, скрепя сердце, я решил выложить всё начистоту и рассказать всему миру о том, как я в последние несколько лет воровал имена пользователей, пароли и номера кредитных карт с самых разных сайтов. Возможно, вы — администратор или разработчик одного из них.
Читать дальше →
Total votes 319: ↑312 and ↓7+305
Comments325

Про Гауди — разработчика из девятнадцатого века, добившегося всего, чего может добиться разработчик

Reading time8 min
Views100K
Вот что строил испанский архитектор Антонио Гауди:



Его здания описывают как «бионические дома», некоторые говорят о «летящей пластичной материи». За морем восторгов художников и дизайнеров, как мне показалось, упущена некоторая невероятная рационализация и прагматичность. Гауди был в первую очередь отличным разработчиком, математиком и геометром. Но чтобы объяснить это, сначала я покажу другую картинку:


Это два крепления. Первое производится серийно — оно просто в проектировании, просто в изготовлении, дёшево и невероятно уродливо. Второе красивое, и требует на 25% меньше материала для того, чтобы выдержать тот же вес (то есть — куда прочнее). Только его трудно рассчитать, оно будет дороже в серии — и придётся подумать.

Примерно то же самое делал Гауди. Ему пришлось обойтись без математического аппарата и современных материалов. И ещё действовать в рамках строго ограниченного бюджета. Он, фактически, заложил новые принципы всего от фасада до последней дверной ручки, создал шедевры оптимизации — в общем смёл все стереотипы как сухие листья, создал с нуля теорию и воплотил её. В девятнадцатом веке всё то, что он делал, было просто диким. Некоторые даже считали его сумасшедшим.
Читать дальше →
Total votes 228: ↑225 and ↓3+222
Comments136

Если вы девушка, то стоит ли идти в разработчики. Мой опыт

Reading time7 min
Views44K
Если ты – девушка и думаешь пойти учиться в вуз на программиста или начать искать свою первую работу разработчиком, но колеблешься, эта статья для тебя. Также, возможно, мое повествование поможет и руководителям взвесить все за и против при приеме на работу кандидаток. Итак, приступим, плюсы, минусы, подводные камни.

image
Читать дальше →
Total votes 57: ↑34 and ↓23+11
Comments240

Почему мне кажется, что студентов учат ООП неправильно

Reading time5 min
Views232K
Когда я учился в университете мне довольно тяжело было понять ООП (Объектно-ориентированное программирование), сейчас я понимаю, что просто нас учили ООП на не совсем ясных и правильных аналогиях и вообще, кажется, сами преподаватели не совсем понимали, в чем же суть ООП.

image

Вспомните, классические аналогии ООП, вот есть класс Домашние любимцы с методами «голос» и «есть», от него мы наследуем Кошку и Собаку и все хорошо.

Но тут приходит Света и приносит аквариумных рыбок, которые не разговаривают, а потом приходит Вася, которые приносит любимый кактус, которые не только не разговаривает, но и не ест.

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

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

Теперь подумаем как объяснить ООП лучше?
Читать дальше →
Total votes 68: ↑53 and ↓15+38
Comments474

Чёрные треугольники

Reading time3 min
Views23K

В октябре 1994 года я только начал свою карьеру добросовестного программиста видеоигр в небольшом стартапе SingleTrac, который позже получил славу и почёт (но, к сожалению, не очень много удачи) благодаря таким сериям игр, как Warhawk, Twisted Metal и Jet Moto. Но в то время в компании было меньше 20 сотрудников, и официально она работала всего около месяца. Это случилось в мою первую рабочую неделю, возможно, в первый или второй день. Из кабинета разработчиков слышались восторженные крики.

Финансовый контролёр и действующая HR-леди нашей компании Джен вышла посмотреть, что за невероятный успех празднуют инженеры и художники. Все смотрели в экран телевизора, подключённого к комплекту разработки Sony Playstation. На экране на фоне одноцветного фона отображался чёрный треугольник.
Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments19

Один обычный забавный понедельник

Reading time8 min
Views6.5K
Люблю офис по утрам. Когда темно-тихий опенспейс незаметно и в привычных знакомых заботах понемногу заполняется светом и шумом начинающегося дня. Постепенно наползают по-утреннему радостные и довольные девелоперы, дизайнеры, тестировщики. Оживают приветами рабочие чаты. Приходят менеджеры в окружении свиты из s&s, hr и прочих хипстерящих. Раздаются и получаются весьма искренние пожелания доброго утра у кофемашин. Тихий и пустой поначалу офис, как двигатель, постепенно выходит на рабочую мощность, и в свете и гуле начинается рабочий день.
Читать дальше →
Total votes 24: ↑17 and ↓7+10
Comments4

Как правильно чистить лук, или Почему разработка ПО выходит из-под контроля

Reading time10 min
Views29K


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

Складывается ощущение, что проект зажил собственной жизнью и пытается сожрать вас.



Как так случилось? Может, наняли плохого разработчика? Кто-то ошибся в планировании проекта? А вдруг сама идея проекта была ужасной?

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

Мы предполагаем, что продукт определяется набором функций, записанных на листочке бумаги: иногда что-то добавляется, иногда убирается — но масштаб проекта всегда будто бы можно понять с одного взгляда.

Это предположение — неверно.

Проект — это не лист бумаги, не двумерный объект — у него есть глубина.

Каждую функцию на поверхности можно раскрыть — и так слой за слоем. Будь у меня склонность к громким заголовкам, я бы сказал, что всякое приложение — это лук, и нужно уметь правильно его чистить. Не очень понятно? Тогда давайте я поясню, что имеется в виду, и расскажу, почему не получается раскрывать слои приложения без слёз.

Переведено в Alconost
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments35

Криптография русского крестьянина

Reading time5 min
Views34K

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

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

Умножение методом русских крестьян


Если вы не знали о нём раньше, то это довольно любопытный подход к умножению, который не требует запоминания таблиц умножения — для него достаточно способности удваивать и делить пополам целые числа. Не очень понятно, как он относится к русским крестьянам: похоже, так же, как «датская сдоба» к Дании. Этот метод был известен ещё древним египтянам, которые явно жили намного раньше русских крестьян.

Общее описание метода просто, но не слишком информативно. Тем не менее, давайте начнём с него.
Читать дальше →
Total votes 80: ↑79 and ↓1+78
Comments15

Английские фразы, которые не стоит переводить буквально

Reading time4 min
Views243K


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

Повседневные фразы и инструкции


Тут сразу стоит отметить, что в английском довольно много фразовых глаголов, которые очень популярны, особенно в разговорной речи. Понятное дело, что sit down, stand up или come up уже никого не удивят, но есть другие интересные случаи, и не только с фразовыми глаголами.
Читать дальше →
Total votes 71: ↑58 and ↓13+45
Comments208

Разработчики о самых грязных программных трюках в играх

Reading time10 min
Views83K
image


Когда время заканчивается, разработчики выдохлись, а загадочные проблемы продолжают появляться, иногда требуются нестандартные решения. Когда вам любой ценой нужно завершить проект, то на кону стоит всё… В паре классических статей, изначально опубликованных в дружественном журнале Game Developer magazine, мы изучили несколько потрясающих примеров таких решений из реальной жизни. Эти нестареющие шедевры можно прочитать здесь (перевод на Хабре) и здесь.

Gamasutra ещё раз решила рассмотреть эту тему. Мы собрали со всей игровой индустрии необычные решения необычных проблем. Те, кто поделился с нами этими решениями, могут и не гордиться такими «исправлениями», но на самом деле гордиться им стоит. Им удалось выпустить игру, они ничего не испортили и, что важнее всего, никто ничего не заметил. По крайней мере, до этой статьи.

Насладитесь изобретательностью, подивитесь бесстрашию, научитесь на ошибках своих предшественников, и самое важное — выпускайте работающие игры, и тоже в срок.
Total votes 93: ↑91 and ↓2+89
Comments69

Небольшое расхождение

Reading time9 min
Views23K


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

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

positions of 394 raindrops on a tabletop


Повторю вопрос: выглядит ли этот паттерн как результат случайного процесса?
Читать дальше →
Total votes 72: ↑71 and ↓1+70
Comments27

Создание ремейков игр с помощью эмуляции: proof of concept

Reading time7 min
Views9.9K
image

Введение


«В моё время игры были лучше. Они были интереснее, потому что геймплей считался более важным, чем графика».

— Геймеры, рождённые в любом десятилетии

Каким бы ни было «ваше время», думаю, вы в какой-то степени согласны с этим мнением. Для меня это был период с середины 80-х до середины 90-х, когда я проводил бесчисленные часы за Sir Fred, Atic Atac, Airborne Ranger, Monkey Island, Twilight: 2000, Stunts, Gunship 2000, Twinsen’s Adventure, Dark Sun, Challenge for Ancient Empires, серией the X-Wing и очень многими другими играми.

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

Сыграть в remastered-версию. Некоторые игры настолько потрясающи и собрали настолько преданную базу фанатов, что выпускается официальное «новое издание». Это точно такая же игра, но с современной графикой. Отличным примером таких игр может быть замечательная Monkey Island Special Edition.

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

К похожей категории относятся игры, исходный код которых открыт, например шутеры от первого лица компании id. Существуют проекты, создающие новые графические ресурсы для этих игр, но они редки, да и немногие разработчики открывают исходный код своих игр.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Дятьково, Брянская обл., Россия
Date of birth
Registered
Activity