Как стать автором
Обновить
193
0
mifa @mifa

Пользователь

Отправить сообщение

4X Games: в поисках икса пятого

Время на прочтение9 мин
Количество просмотров14K
imageСегодня мне бы хотелось коснуться достаточно специфического рода игр, относящихся к жанру глобальных стратегий или же 4X-игр, как их иногда называют. Но речь пойдет не только об оффлайн-играх и жанре в целом, но и о некоторых аспектах онлайн-представителей.

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии49

Свой асинхронный tcp-сервер за 15 минут с подробным разбором

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

Ранее я представил пару небольших постов о потенциальной роли Spring Boot 2 в реактивном программировании. После этого я получил ряд вопросов о том, как работают асинхронные операции в программировании в целом. Сегодня я хочу разобрать, что такое Non-blocking I/O и как применить это знание для создания небольшого tcp–сервера на python, который сможет обрабатывать множество открытых и тяжелых (долгих) соединений в один поток. Знание python не требуется: все будет предельно просто со множеством комментариев. Приглашаю всех желающих!
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии17

Написание blockchain менее чем за 200 строк кода на Go

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

Привет, Хабр! Представляю вашему вниманию перевод статьи "Code your own blockchain in less than 200 lines of Go!".


image

Данный урок является хорошо адаптированным постом про простое написание blockchain на Javascript. Мы портировали его на Go и добавили дополнительных фич, таких как просмотр цепочек в браузере.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии19

Обновление приложений Xamarin под iOS на Iphone X

Время на прочтение2 мин
Количество просмотров3.7K
Привет, Хабр! Представляю вашему вниманию перевод статьи Updating Xamarin.iOS Apps for the iPhone X автора John Miller.

Самым значительным событием в компании Apple в этом году, безусловно, стал выход Iphone X. Новейший дисплей Super Retina создает потрясающий эффект погружения по сравнению с тем, что нам когда-либо доводилось испытывать при взаимодействии с айфоном. И, вероятно, в связи с такими переменами, разработчики мобильных приложений на Xamarin задаются вопросом о том, какие изменения нужно внести в свои приложения. Итак, сначала давайте ознакомимся с тем, как подготовить приложения для Iphone X.

Анализ приложения с помощью iPhone X Simulator


Чтобы проверить, совместимо ли ваше приложение с iPhone X, в первую очередь обновите Xamarin.iOS до версии 11+ и скачайте и установите Xcode 9. Если вы еще этого не сделали, то вам нужно ознакомиться с документацией о начале работы с iOS 11. Затем, после обновления, вы сможете запустить ваш симулятор Iphone и понаблюдать, как приложение будет себя вести. Обратите особое внимание на области приложения, которые не используют автоматическую компоновку элементов интерфейса (Auto Layout), и те, что отображают содержимое в полноэкранном режиме. Если ваше приложение поддерживает горизонтальный режим, не забудьте повернуть симулятор и убедиться в том, что интерфейс и в этом режиме отображается корректно. И если приложение на Iphone запускается, но не использует разрешение экрана в полной мере, то, скорее всего, причина в отсутствии раскадровки экрана запуска (Launch Screen Storyboard). Вы можете прочесть документацию о получении этой настройки на официальном сайте.

image
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии0

Vue.js tutorial: от jQuery к Vue.js

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

Привет, Хабр! Представляю вашему вниманию перевод статьи Vue.js Tutorial: From jQuery to Vue.js автора Paul Redmond.


Что касается библиотек JavaScript, то никогда не было более популярной библиотеки, чем jQuery. Она создавалась для обхода DOM элементов с использованием CSS селекторов в то время, когда совместимость браузеров была важной проблемой для разработчиков.


Фактически jQuery настолько универсален, что я подумал что он отлично передаст то, почему я люблю писать UI с Vue, используя компонентный JavaScript. В этом руководстве мы сначала рассмотрим создание пользовательского интерфейса с jQuery, а затем перепишем его с помощью Vue.

Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии29

Объясняем современный JavaScript динозавру

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


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Всего голосов 174: ↑171 и ↓3+168
Комментарии505

Зачем в Go амперсанд и звёздочка (& и *)?

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

Если вы хоть раз были сбиты с толку, что означает символ "амперсанд" (&) или "звёздочка" ("знак умножения", *) или запутывались, когда что использовать, то это статья для вас. Авторы Go старались сделать язык знакомым большинству программистов, и многие элементы синтаксиса заимствовали из языка С. Но в 2017м уже сложно понять, большинство программистов владеют С или нет, и смею полагать, что уже нет. Поэтому концепции хорошо знакомые прошлому поколению разработчиков, могут выглядеть совершенной абракадаброй для для нового поколения. Давайте немного копнём историю и расставим все точки над ї в вопросах указателей в Go и использования символов & и *.


Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии32

Новости онлайн-курсов Mail.Ru Group: «Программирование на Python»

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


Вчера мы запустили на Coursera новый онлайн-курс «Программирование на Python» совместно с МФТИ, чтобы научить всех желающих программировать на этом языке. Курс читают разработчики, применяющие Python в проектах, которыми ежедневно пользуются миллионы людей. Курс покрывает все необходимые для ежедневной работы программиста темы, а также рассказывает про многие особенности языка, которые часто опускают при его изучении.

Всего голосов 40: ↑38 и ↓2+36
Комментарии38

Постквантовая реинкарнация алгоритма Диффи-Хеллмана: вероятное будущее (изогении)

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


Сегодня мы снова поговорим про протокол Диффи-Хеллмана, но уже построенный на более необычных конструкциях — изогениях, которые признаны устойчивыми к атакам на будущем квантовом компьютере. Квантовый компьютер, который сможет удержать в связанном состоянии порядка нескольких тысяч кубит, позволит находить закрытые ключи по открытым ключам у всех используемых сейчас асимметричных криптосистем. Число кубит для взлома RSA равно удвоенному числу бит в модуле (т.е. для разложения на множители модуля RSA длиной 2048 бит потребуется 4096 кубит). Для взлома эллиптических кривых необходимы более скромные мощности «квантового железа»: для решения задачи ECDLP для кривых над простым полем (такие кривые есть и в отечественном стандарте подписи ГОСТ Р 34.10-2012 и в американском ECDSS) c модулем кривой длиной n бит требуется 6n кубит (т. е. для модуля в 256 бит надо ~ 1536 кубит, а для 512 бит ~ 3072 кубит). На днях российско-американская группа ученых установила мировой рекорд, удержав в связанном состоянии 51 кубит. Так что у нас есть еще немного времени для изучения изогений (а также решеток, кодов, multivariate и подписей, основанных на хэшах).
Кстати, изогении считаются одним из наиболее вероятных кандидатов на победу на конкурсе NIST постквантовых алгоритмов для замены RSA и эллиптических кривых в ближайшие несколько лет.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии29

Библиотека для визуализации спортивных сезонов

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


Вчера закончился очередной сезон английской премьер-лиги, и это отличный повод поговорить о визуализации спортивных сезонов.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии20

Что нужно учесть при проектировании системы, чтобы не было мучительно больно?

Время на прочтение8 мин
Количество просмотров22K
В статье описаны проблемы при проектировании баз данных и немного всего приложения, которые потом с ростом проекта все сложнее и сложнее решить. Моменты, которые важно учесть на этапе дизайна, и не задумываться о них в последствии. Ну или задумываться за чашкой чая и фразой «А помнишь, как мы решили это сделать сразу? Сколько времени мы этим себе сэкономили!», а не с ощущением зубной боли и болезненном вздрагивании при каждом воспоминании. По мере роста системы и числа пользователей, дизайн базы все сложнее и сложнее изменить, и масштаб изменений становится все более глобальным и трудоемким.

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

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


Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии32

3D моделирование и анимация: руководство для начинающих

Время на прочтение9 мин
Количество просмотров73K
И ещё немного полезной информации от партнёров: на этот раз компания Akadem представляет подробный туториал для начинающих разработчиков, которые желают освоить азы 3D моделирования и анимации для будущих проектов. Основываясь на собственном опыте создания симулятора паркура и адаптациии его для разных платформ, авторы подробно разбирают процесс создания персонажа экшн-игры, реализации базовых движений и локаций.


«Привет, читатель Хабра! Если ты чувствуешь, что ещё мало продвинулся в разработке игр на Unity3D, и мечтаешь о чём-то большем и, главное, динамичном — добро пожаловать под кат. Там мы расскажем о том, как создать своего собственного персонажа, не имея навыков 3D моделирования, импортировать его в Unity-проект и заставить двигаться.
Читать дальше →
Всего голосов 15: ↑13 и ↓2+11
Комментарии9

Семь причин, из-за которых не получается бросить Clash Royale

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

С момента выпуска в начале 2016 года Clash Royale скачали почти 200 миллионов раз, и игра заработала примерно один миллиард долларов только на внутриигровых покупках. Уникально в Clash Royale ещё и то, что она, скорее всего, заработает со временем больше, чем Clash of Clans. Теперь сравните это со всеми играми франшизы King, которые обычно с каждым разом показывают всё худшие результаты.

По моему мнению, Clash Royale — это лучшая игра из всех, созданных для устройств с сенсорным экраном. Я забрасывал и удалял её больше раз, чем могу посчитать. Но и устанавливал я её больше раз, чем удалял. Эта статья возникла из-за моего пристрастия к этой игре. В ней я подробно проанализирую элементы, привязывающие нас к этому шедевру.

Вот ещё пара интересных постов о Clash Royale:

5 причин, по которым я хочу бросить Clash Royale
Анализ следующей игры Supercell на миллиард долларов

1. Обновления


Как только вы устаёте от этих эмоциональных «американских горок», известных как Clash Royale, они добавляют ещё одно обновление с новыми картами. Картами, которые обязательно заставят вас начать новую охоту за трофеями.

Если забыть о печальном турнирном обновлении июля 2016 года, который обвалил доходы Clash Royale до минимума, выпускаемые раз в два месяца обновления получаются или хорошими, или потрясающими (подробнее: Clash Royale Tournaments Update Disappoints).

Цель обновлений с точки зрения продукта достаточно проста: потратить как можно меньше времени для увеличения вовлечённости и монетизации. Для достижения этой цели разработчики анализируют качественные и количественные данные, а также пользуются старой доброй интуицией. Вся эта информация затем используется для проведения спринтов, для создания дополнительного контента, новых функций, исправлений, изменений баланса и усовершенствования игры.
Всего голосов 14: ↑8 и ↓6+2
Комментарии9

Шесть парадигм программирования, которые изменят ваш взгляд на код

Время на прочтение9 мин
Количество просмотров54K
Периодически я натыкаюсь на языки программирования, которые настолько самобытны, что меняют моё представление о коде в целом. В этой статье я хотел бы поделиться некоторыми из самых любимых моих находок.

Здесь вы не найдёте устаревшего посыла «функциональное программирование спасёт мир!»; мой список состоит из куда менее популярных наименований. Готов поспорить, многие из читателей вообще не слышали о большинстве языков и парадигм, о которых пойдёт речь, так что надеюсь, вам будет так же интересно с ними разбираться, как и мне.

Примечание: прошу заметить, что у меня очень ограниченный опыт работы с большей частью этих языков: идеи, на которых они строятся, кажутся мне заслуживающими внимания, но экспертом я назвать себя не могу. Поэтому, пожалуйста, указывайте на ошибки и предлагайте исправления. А если найдёте какие-то ещё идеи и парадигмы, которые я пропустил, делитесь!


Читать дальше →
Всего голосов 40: ↑36 и ↓4+32
Комментарии49

Как уместить все приложения в 16 Гб ОЗУ на macOS

Время на прочтение3 мин
Количество просмотров18K
Заголовок может вам показаться странным, если вы не используете macOS, но если вы пользуетесь продуктами экосистемы Apple (особенно ноутбуками или iMac Retina 4K), то в процессе работы можете столкнуться с неприятной проблемой: все необходимые для работы инструменты никак не хотят помещаться в 16 Гб оперативной памяти, и система начинает периодически «тормозить» и использовать большое количество сжатой памяти и свопа.

В интернете есть много тривиальных статей, как можно уменьшить потребление памяти на macOS из серии «выключите ненужные программы, установите The Great Suspender для Google Chrome» и т.д. Если вы перепробовали эти советы и всё равно страдаете от недостатка памяти, то я бы хотел поделиться опытом, как лично я решаю эти проблемы.
Читать дальше →
Всего голосов 53: ↑31 и ↓22+9
Комментарии64

Как привести на сайт посетителей честными способами и сэкономить: дайджест полезных материалов для начинающих

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


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

Я собрал небольшой дайджест, в котором собраны ссылки на практические материалы, в которых рассказывается о том, как действенно привлечь трафик на свой сайт и после этого повысить его конверсию, а также каких ошибок стоит избегать в процессе работ.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии0

Несколько полезных команд для работающих в терминале Linux

Время на прочтение1 мин
Количество просмотров19K
Загрузка файла по ссылке с возможностью продолжить загрузку, например, при обрыве соединения:
wget -c http://link/file

Просмотр записи в текстовый файл в реальном времени:
tailf file

Узнать время выполнения команды:
time command

Слежение за изменениями в выводе команды:
watch command

Сочетание клавиш для закрытия текущей сессии в bash и различных утилитах, например клиент MySQL:
Ctrl-D

Быстрое создание резервной копии файла:
cp file{,.copy}
Читать дальше →
Всего голосов 69: ↑33 и ↓36-3
Комментарии34

61 способ улучшить SEO вашего сайта

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


Недавно мы закончили курс по SEO в Нетологии и составили для себя чек-лист того, что обязательно нужно сделать на сайте «Я люблю ИП» для поисковой оптимизации. Но эти советы универсальны для любого проекта. В статье вы найдёте список практических рекомендаций со всего курса из 13 лекций от 8 разных специалистов, а также полезные ссылки и сервисы, которые помогут вам улучшить SEO вашего сайта.


Для кого эта статья:


  • для веб-дизайнеров и разработчиков, которые хотят создавать сайты, изначально оптимизированные под SEO,
  • для владельцев интернет-ресурсов, которые хотят самостоятельно разобраться в SEO, чтобы увеличить поисковый траффик.

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


Читать дальше →
Всего голосов 46: ↑36 и ↓10+26
Комментарии61

Нейронные сети для начинающих. Часть 1

Время на прочтение7 мин
Количество просмотров1.5M
image

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
Читать дальше →
Всего голосов 70: ↑60 и ↓10+50
Комментарии64

Сравнение решений по балансировке высоконагруженных систем

Время на прочтение10 мин
Количество просмотров26K
И вновь мы публикуем расшифровки выступлений с конференции HighLoad++, которая прошла в подмосковном Сколково 7—8 ноября 2016 года. Сегодня Евгений Пивень знакомит нас с решениями балансировки в облаках.



Меня зовут Женя, я работаю в компании IPONWEB. Сегодня мы поговорим про развитие наших решений в балансировке высоконагруженных систем.

Сначала я пробегусь по понятиям, которыми буду оперировать. Начнём с того чем мы занимается: RTB, Real Time Bidding — показ рекламы с аукционом в реальном времени. Очень упрощенная схема того, что происходит, когда вы заходите на сайт:
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Израиль
Зарегистрирован
Активность