8 апреля в Екатеринбурге прошла конференция DUMP. Под катом — видео 60-и докладов про frontend, serverside, devops, mobile, дизайн, управление разработкой и тестирование, плюс все презентации и фотографии с прошедшей конференции. А вот короткий отчетный ролик про DUMP-2016.
Евгений @MinimaJack
Программист
(La)TeX на Хабрахабре
2 мин
13KПривет, хабр.
Вопрос о нативном отображении формул на хабре есть достаточно давно (сам я не так давно писал в техподдержку с этим вопросом, получил ответ, что в планах есть, но пока всё очень неопределённо), и сегодня (а, точнее, уже вчера) был поднят в комментариях к "Магия тензорной алгебры: Перезагрузка". А если заглянуть в хаб по LaTeX, то сразу же 2 последние статьи — на тему оформления формул в статьях хабра.
Самое интересное, что в принципе подключить поддержку TeX / LaTeX к любому сайту — дело пары минут и пары строк кода: достаточно подключить MathJax, ставшую уже почти что стандартной в задаче отображения формул в браузере.
Традиционно для формул на хабре используются картинки, однако всё вышесказанное наводит на вполне определённую мысль, что есть и другой вид костылей. С одной стороны, менее удобный, с другой — более.
+20
Объясняя необъяснимое
11 мин
64KПеревод
Друзья, мы с радостью продолжаем публикацию интересных материалов, посвященных самым разнообразным аспектам работы с PostgreSQL. Сегодняшний перевод открывает целую серию статей за авторством Hubert Lubaczewski, которые наверняка заинтересуют широкий круг читателей.
Одна из первых вещей, которую слышит новоиспеченный администратор баз данных – «используй EXPLAIN». И при первой же попытке он сталкивается c непостижимым:
Что бы это могло значить?
Одна из первых вещей, которую слышит новоиспеченный администратор баз данных – «используй EXPLAIN». И при первой же попытке он сталкивается c непостижимым:
QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------
Sort (cost=146.63..148.65 rows=808 width=138) (actual time=55.009..55.012 rows=71 loops=1)
Sort Key: n.nspname, p.proname, (pg_get_function_arguments(p.oid))
Sort Method: quicksort Memory: 43kB
-> Hash Join (cost=1.14..107.61 rows=808 width=138) (actual time=42.495..54.854 rows=71 loops=1)
Hash Cond: (p.pronamespace = n.oid)
-> Seq Scan on pg_proc p (cost=0.00..89.30 rows=808 width=78) (actual time=0.052..53.465 rows=2402 loops=1)
Filter: pg_function_is_visible(oid)
-> Hash (cost=1.09..1.09 rows=4 width=68) (actual time=0.011..0.011 rows=4 loops=1)
Buckets: 1024 Batches: 1 Memory Usage: 1kB
-> Seq Scan on pg_namespace n (cost=0.00..1.09 rows=4 width=68) (actual time=0.005..0.007 rows=4 loops=1)
Filter: ((nspname <> 'pg_catalog'::name) AND (nspname <> 'information_schema'::name))
Что бы это могло значить?
+29
Как ботаники заведения автоматизируют
8 мин
27KПривет, Хабр. Прошло почти 2 года после моего последнего поста. Очень рад, что он оказался для многих полезным. За эти 2 года мы сделали очень многое. И мне хотелось бы поделиться опытом и своими впечатлениями.
С 20 заведений-клиентов из одной страны мы выросли почти до 4 000 из 12 стран. Наша команда выросла в 5 раз. Открыли офис в Москве и Варшаве. Выпустили приложение, помимо iOs и Web, еще на Android и Windows. Значительно увеличили функционал. Перевели Poster на 5 языков. За последний квартал приняли участие в 3-х международных выставках. Тесно дружим с такими компаниями как Epson, Microsoft, Intel. За нами пристально следят несколько крупных инвесторов. Европейская компания предложила нам поглощение.
На первый взгляд может показаться, что все просто и безоблачно, но уверяю это не так. Самое интересное и опасное только предстоит. По сути мы прошли только первый этап — этап проверки идеи и построения первой версии продукта. Дальше предстоит самый сложный этап — этап становления, когда происходит внутренняя оптимизация и реструктуризация компании. Именно об этом я и хочу рассказать.
+31
Балансируем механику в играх
5 мин
26KВ индустрии игр пользователь, как правило, получает готовый продукт — конфету в обертке. Обертку можно рассмотреть сразу, а вот то, что под ней скрыто, порой навсегда остается тайной. В интернете можно найти много достойной информации о том, как правильно упаковывать конфеты и какого цвета должны быть узоры на обертке. Но я, вместе с вами, хочу снять обертку и попробовать саму конфету. Под конфетой я имею ввиду — взгляд от первого лица, как делать баланс игры.
Например, мы захотели создать незатейливую RPGMMO-шечку «убийцу WoW», и у нас уже почти все готово. Мы уже нафантазировали, какая в игре будет крутая механика боя и система умений. Дело осталось за малым – абстрактные мысли превратить в конкретные значения. Причем, каким-то образом, сочетание этих значений должно убедить игрока в том, что фраза «баланс – говно» — это не про нас.
Например, мы захотели создать незатейливую RPGMMO-шечку «убийцу WoW», и у нас уже почти все готово. Мы уже нафантазировали, какая в игре будет крутая механика боя и система умений. Дело осталось за малым – абстрактные мысли превратить в конкретные значения. Причем, каким-то образом, сочетание этих значений должно убедить игрока в том, что фраза «баланс – говно» — это не про нас.
+11
И снова про 1С
18 мин
72KПоследнее время на Хабре стали все чаще появляться статьи, посвященные 1С как среде разработки приложений. Статьи по смыслу более концептуальные, чем прикладные; авторы делают обзор платформы «1C:Предприятие 8» в целом, пытаются понять, хороша или плоха технология создания бизнес-приложений, предлагаемая 1С.
Не буду обсуждать, прав ли каждый из авторов или нет; у платформы 1С, как у любой технологии, есть свои преимущества и недостатки. А есть и свои интересные особенности, свои наработки и механизмы. Вот о них и хочется поговорить. А еще — хочется написать статью про 1С для людей, с 1С незнакомых, статью, которая показывает, какое место 1С занимает в ряду аналогичных программных продуктов. Мне лично такой ознакомительной обзорной статьи очень не хватало, когда я еще не был знаком с 1С, но был знаком с рядом других ERP продуктов.
Итак, начнем!
+8
Пишем обертку для FUSE на Java Native Runtime
8 мин
17KВ статье я расскажу как реализовать файловую систему в юзерспейсе на Java, без строчки ядерного кода. А также покажу как связать Java и нативный код без написания кода на C, при этом сохранив максимальную производительность.
Интересно? Добро пожаловать под кат!
Интересно? Добро пожаловать под кат!
+26
Вредные советы — 2 или поведенческие аспекты постановки задач в телекоме
4 мин
2KВ качестве продолжения темы.
О «поведенческих аспектах невыполнения задач» или «способах саботажа», с которыми приходилось сталкивался в телекоме, в прошлой статье поговорили. Добавлю, что иногда встречаются, конечно и совсем экзотические способы, когда откровенно глупые, а когда — очень «замудрённые». Их не рассматриваем, ибо почти все они подходят под категорию, которую упоминали лиса Алиса и кот Базилио в знаменитой экранизации словами: «Буратино! Ты сам себе враг!».
О «поведенческих аспектах невыполнения задач» или «способах саботажа», с которыми приходилось сталкивался в телекоме, в прошлой статье поговорили. Добавлю, что иногда встречаются, конечно и совсем экзотические способы, когда откровенно глупые, а когда — очень «замудрённые». Их не рассматриваем, ибо почти все они подходят под категорию, которую упоминали лиса Алиса и кот Базилио в знаменитой экранизации словами: «Буратино! Ты сам себе враг!».
+6
Email, SMS, and push-уведомления: 7 хаков, которые помогут превратить пользователей пробной версии в платящих клиентов
8 мин
20KПеревод
Наверное, для множества стартапов (и не только) вопрос об увеличении количества платящих клиентов актуален во все времена. Хотите узнать секрет о том, как превратить пользователей, оценивших вашу пробную версию, в тех, кто регулярно платит? По словам автора статьи, все очень просто, и весь секрет заключается в одном слове — общение. И это общение должно быть правильно организовано. Как именно?
+3
XMonad + XMobar = ❤
10 мин
70KМногие слышали про тайловые оконные менеджеры, некоторые даже слышали о XMonad. А ребята из Google даже променяли Unity/Gnome на XMonad. Что же это такое, как это настраивать и как с этим жить? Краткий workaround для любителей кастомизировать всё подряд.
+30
Создание игрового персонажа
5 мин
166KВ данной статье описывается процесс создания персонажа для игрового движка. Статья в первую очередь адресована тем, кто интересуется процессом разработки next gen моделей, а также всем, кто хочет заглянуть за кулисы современного игродела. Персонажа я делал для портфолио, на персонажей переключился совсем недавно, можно сказать, что это первый доведенный до ума персонаж. Поскольку данная работа — мой личный проект, то я установил ограничение треугольников в 20 000, текстуры в 2048*2048, работа планировалась под PBR.
+83
Infobox открывает локацию в Европе!
4 мин
8KМы рады сообщить о запуске новой локации Infobox для VPS в Амстердаме. Теперь Infobox предоставляет клиентам возможность выбора локации для VPS в России или Европе. Мы стремимся быть ближе к пользователям, позволяя создавать быстрые и надежные сайты и сервисы по всему миру.
Всего у Infobox теперь 4 локации: Санкт-Петербург, Красноярск, Москва и Амстердам.
Всего у Infobox теперь 4 локации: Санкт-Петербург, Красноярск, Москва и Амстердам.
+5
Платформа для видеосервиса сроком в квартал
14 мин
19KСегодня мы расскажем, как нам удалось построить свою платформу для сервиса видео на Одноклассниках на Java за 3 месяца.
Начнем с того, что представляет собой видеосервис на Одноклассниках. Он доступен как на вебе, так и в версиях для мобильных устройств. Одним из отличий Одноклассников от других соцсетей является наличие видеовитрины, где в разделах «ТОП недели», «Новинки» и каналах собраны видео. Для этих разделов видео отбирается автоматически по хитрому алгоритму на основании числа просмотров, классов и скорости роста популярности видео. И конечно, на витрине представлены каналы с контентом от партнеров:— сериалы, ТВ шоу, мультфильмы и кино.
В основном, это стандартный видеосервис. Пользователь загружает видео, дальше оно проходит модерацию, после чего другие пользователи могут его посмотреть.
Видеосервисом на Одноклассниках пользуется свыше 10 миллионов уникальных пользователей в день, которые смотрят свыше 70 миллионов видеороликов и загружает 50 тысяч видео в день.
Видеобаза Одноклассников насчитывает свыше 28 миллионов роликов. Исходящий трафик по вечерам достигает 80 гигабит в секунду. Ежедневно загружаемые 5 терабайт нового видео в день преобразуются в наш внутренний формат и на выходе получается 2 терабайта. Получившиеся файлы хранятся в трех копиях, что, в итоге, суммарно составляет 6 терабайт нового видео в день. Входящий трафик по загрузке достигает 2 гигабит в пиковые часы.
Начнем с того, что представляет собой видеосервис на Одноклассниках. Он доступен как на вебе, так и в версиях для мобильных устройств. Одним из отличий Одноклассников от других соцсетей является наличие видеовитрины, где в разделах «ТОП недели», «Новинки» и каналах собраны видео. Для этих разделов видео отбирается автоматически по хитрому алгоритму на основании числа просмотров, классов и скорости роста популярности видео. И конечно, на витрине представлены каналы с контентом от партнеров:— сериалы, ТВ шоу, мультфильмы и кино.
В основном, это стандартный видеосервис. Пользователь загружает видео, дальше оно проходит модерацию, после чего другие пользователи могут его посмотреть.
Видеосервисом на Одноклассниках пользуется свыше 10 миллионов уникальных пользователей в день, которые смотрят свыше 70 миллионов видеороликов и загружает 50 тысяч видео в день.
Видеобаза Одноклассников насчитывает свыше 28 миллионов роликов. Исходящий трафик по вечерам достигает 80 гигабит в секунду. Ежедневно загружаемые 5 терабайт нового видео в день преобразуются в наш внутренний формат и на выходе получается 2 терабайта. Получившиеся файлы хранятся в трех копиях, что, в итоге, суммарно составляет 6 терабайт нового видео в день. Входящий трафик по загрузке достигает 2 гигабит в пиковые часы.
+28
Производительность log4j 1.x в синхронном и асинхронном режиме
7 мин
8.5KДоброго времени суток, хабражители!
На данный момент я занимаюсь улучшением производительности большого корпоративного решения. Его специфика позволяет множеству пользователей выполнять схожие действия, а соответственно за кулисами, сервер приложений работает с одним и тем же кодом. И вот в один из моментов длинного пути ускорения приложения, было замечено что в топе самых низкопроизводительных участков верхние места занимает log4j. Первой мыслью было — излишнее логирование, но последующий анализ ее опроверг. Тем более что это крайне важные данные для инженеров поддержки, и если убрать это сейчас — то либо код вернут обратно либо анализ проблем продакшен сервера будет существенно затруднен.
Это и натолкнуло меня на данное исследование — есть ли способ оптимизировать процесс логирования?
Disclaimer: в силу обилия в данной статье диаграмм вызывающих психоделические ассоциации (вроде этой: это не сравнение синхронного и асинхронного режимов логирования, тут дракон убивает змею!), не рекомендуется к просмотру несовершеннолетним, людям с неустойчивой психикой и беременным женщинам, чей код уже в продакшене а выдача ближайшего патча не в этом году.
Осторожно, под катом трафик.
На данный момент я занимаюсь улучшением производительности большого корпоративного решения. Его специфика позволяет множеству пользователей выполнять схожие действия, а соответственно за кулисами, сервер приложений работает с одним и тем же кодом. И вот в один из моментов длинного пути ускорения приложения, было замечено что в топе самых низкопроизводительных участков верхние места занимает log4j. Первой мыслью было — излишнее логирование, но последующий анализ ее опроверг. Тем более что это крайне важные данные для инженеров поддержки, и если убрать это сейчас — то либо код вернут обратно либо анализ проблем продакшен сервера будет существенно затруднен.
Это и натолкнуло меня на данное исследование — есть ли способ оптимизировать процесс логирования?
Disclaimer: в силу обилия в данной статье диаграмм вызывающих психоделические ассоциации (вроде этой: это не сравнение синхронного и асинхронного режимов логирования, тут дракон убивает змею!), не рекомендуется к просмотру несовершеннолетним, людям с неустойчивой психикой и беременным женщинам, чей код уже в продакшене а выдача ближайшего патча не в этом году.
Осторожно, под катом трафик.
+12
Правильные способы исключения файлов в Git
1 мин
209KИногда встречаю в файле
В этом топике я расскажу о правильных способах исключения файлов и о том когда какой способ использовать.
.gitignore
то, чего там быть никак не должно. Например, папка .idea
, в которой лежат конфиги известных IDE от JetBrains. Это часть вашего рабочего окружения и она никаким боком не относится к проекту и репозиторию. Если над проектом работает несколько человек и каждый из них добавит конфиги своего окружения в .gitignore, то он превратится в нечитаемую помойку.В этом топике я расскажу о правильных способах исключения файлов и о том когда какой способ использовать.
+50
Гоночка на JavaScript (30 строк кода)
2 мин
94KВ продолжение недели ненормального программирования (как заметил phpcmsdev) решил написать игру в 30 строк кода. Так как тетрис, змейка и арканоид уже были сделаны, выбор пал на гоночки, которые входили в стандартный набор портативной игры.
Ссылка на fiddle.
Ссылка на fiddle.
+59
Lock-free структуры данных. 1 — Начало
12 мин
149KЯ надеюсь, что эта статья станет началом цикла заметок о lock-free структурах данных. Я хочу поделиться с хабрасообществом своим опытом, наблюдениям и размышлениями о том, что такое lock-free структуры данных, как их реализовывать, подходят ли концепции контейнеров стандартной библиотеки STL к lock-free контейнерам, и когда стоит (и стоит ли вообще) применять lock-free структуры данных.
+157
Делаем сплав гибкой разработки и User Experience (UX)
4 мин
10KАвтор оригинальной идеи этой статьи — Джон Иннс, консультант в области гибких методологий IT-разработки. С первоисточником можно познакомиться здесь. Мы его немного доработали, много упростили, но теперь статью, хотя бы, можно читать :)
Итак, есть такая штука, как опыт пользовательского взаимодействия (тот самый UX, User Experience). В целом, UX — это впечатление пользователя от вашего продукта (например, сайта). Сюда относится внешний вид, удобство расположения кнопок, ссылок и других элементов.
Почему учитывать опыт взаимодействия — важно?
Итак, есть такая штука, как опыт пользовательского взаимодействия (тот самый UX, User Experience). В целом, UX — это впечатление пользователя от вашего продукта (например, сайта). Сюда относится внешний вид, удобство расположения кнопок, ссылок и других элементов.
Почему учитывать опыт взаимодействия — важно?
+11
Информация
- В рейтинге
- Не участвует
- Откуда
- Республика Крым, Россия
- Дата рождения
- Зарегистрирован
- Активность