Pull to refresh
-1
0

Когда-то ходил в школу

Send message

О том, что убивает продуктивность разработчиков

Reading time5 min
Views35K


В свете того, что Мегамозг вновь воссоединился с Хабром, теперь можно ожидать, что аудитория обоих порталов также объединилась. Логично будет предположить, что Хабр будет привлекать большее внимание менеджеров, которым не чужд мир современных технологий. Поэтому наша команда SmartProgress решила подготовить статью на перепутье разработки и управления проектами.

Надеемся, что этот пост поможет управленцам лучше понять программистов и не наступать на те грабли, по которым вовсю ходит большинство менеджеров и руководителей — каждый желает, чтобы код работал как по маслу, но при этом начальство забывает о том, что необходимо девелоперам для разработки отличного кода.
Читать дальше →
Total votes 29: ↑20 and ↓9+11
Comments25

Успех на автопилоте. 9 привычек, которые изменили мою жизнь

Reading time8 min
Views105K


Привычки меняют людей. Они могут возродить и убить, подбросить и опустить на самое дно. Все повседневные действия, которые мы совершаем на автомате — привычки. Они управляют нами: влияют на настроение, развитие и здоровье. Внесение полезной привычки, как инвестиция в прибыльный проект, день за днем приносит дивиденды практически без вашего участия. Вам остается только исключить вредные привычки, отобрать полезные и смотреть как меняется мир вокруг вас.
Читать дальше →
Total votes 61: ↑36 and ↓25+11
Comments41

Простые сопрограммы для игр на C++

Reading time3 min
Views15K
Использование в играх сценарных последовательностей действий, таких как диалоги или видеозаставки, является вполне распространенной практикой. Но суть не в том, что эти последовательности пишутся на сценарных языках (хотя и такое бывает), а в том, что они следуют определенному сценарию, как кино или пьеса. Конечно, в отличие от фильмов, сценарии игр могут иметь множество условных переходов (к примеру, в зависимости от выбранного игроком вопроса, последует определенный ответ неигрового персонажа).

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments3

Дайджест разработки на Unreal Engine

Reading time2 min
Views33K
Игры на Unreal Engine, разработка на Unreal Engine, туториалы для Unreal Engine и другие интересные материалы об Unreal Engine вы найдете в нашем дайджесте. И кажется, мы забыли упомянуть самое главное – дайджест посвящен Unreal Engine.


Читать все
Total votes 24: ↑20 and ↓4+16
Comments23

20 способов мошенничества при покупке iPhone

Reading time13 min
Views748K
Когда мы 19 сентября разбирали iPhone 6, предоставленный одним смелым интернет-магазином, его владелец Игорь рассказывал нам удивительные истории о мошенничествах, связанных с этим популярным гаджетом. Истории были насколько увлекательными, настолько и печальными. После того, как эпопея с разбором и сбором закончилась, я попросил Игоря рассказать все известные ему способы жульничества, коих набралось аж двадцать штук. Большинство из них касается покупателей iPhone, но некоторые относятся и к продавцам, которых тоже пытаются обмануть с нерадующей регулярностью.



По итогам получился пост, который, надеюсь, поможет вам избежать многих неприятностей при покупке гаджетов. Тем более, что уловки мошенников универсальны, и могут быть применены не только при операциях с продукцией Apple.
Читать дальше →
Total votes 294: ↑282 and ↓12+270
Comments324

Что нельзя говорить со сцены на ИТ-конференциях, но очень хочется

Reading time9 min
Views37K


Как известно, во многом мы берем пример с Европы и США. К ИТ-сфере это относится в полной мере: разработчики перенимают инструментарий и лучшие техники программирования, ИТ-менеджеры равняются на самые прогрессивные методы управления проектами и разработкой.

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

Однако отдельные личности с критическим мышлением предостерегают нас от ошибки при выборе примеров для подражания. Далеко не всё, что говорят даже самые лучшие спикеры, положительно воспринимается аудиторией.
Total votes 65: ↑57 and ↓8+49
Comments39

О новых успехах противостояния (СР УВЧ!*)

Reading time3 min
Views16K
Пару дней назад появилась статья, которую почти никто не освещал. На мой взгляд, она замечательная, поэтому про неё расскажу в меру своих способностей. Статья о том, чего пока не было: машину научили играть в шутер, используя только картинку с экрана. Вместо тысячи слов:



Не идеально, но по мне — очень классно. 3D шутер, который играется в реальном времени — это впервые.
А теперь чуть-чуть теории
Total votes 45: ↑45 and ↓0+45
Comments47

Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)

Reading time19 min
Views296K
Тема нейронных сетей была уже ни раз освещена на хабре, однако сегодня я бы хотел познакомить читателей с алгоритмом обучения многослойной нейронной сети методом обратного распространения ошибки и привести реализацию данного метода.
Читать дальше →
Total votes 34: ↑22 and ↓12+10
Comments29

Как устроен поиск

Reading time28 min
Views34K
Андрей Аксёнов

Андрей Аксенов (shodan, Разработчик поискового движка Sphinx)


Поиск устроен вот так:

Краткое устройство поиска

Индексация – по большому счету, ничего сложного. Понятное дело, что по малому счету, там в каждой из трех «деталей» спрятан не то, что демон, а целое где-то стадо, где-то легион, не совсем понятно. Но концепция всегда простая. Все начинается с маленького простенького патчика к Многосерчу, а потом 15 лет этой херней занимаешься.

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.
Total votes 64: ↑53 and ↓11+42
Comments22

Отзывчивый размер шрифта

Reading time4 min
Views82K

Уверен, что никому не нужно объяснять почему сайты должны быть гибкими и адаптивными. Все используют проценты и медиа-запросы в своей верстке. Сейчас это уже стандарт.


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


Но потом появились они — vw, vh, vmin, vmax — единицы измерения, которые базируются на viewport. У нас появился шанс на отзывчивую типографику.


Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments20

Как отметить свои TODO, FIXME и ERROR в Xcode

Reading time3 min
Views17K

Этот пост является вольным переводом статьи How to highlight your TODOs, FIXMEs, & ERRORs in Xcode by Hector Matos


Это был самый обычный день: я писал код, устранял баги и вообще все было прекрасно. Именно тогда я написал блок кода, к которому нужно было вернуться позже. Это обычный случай, с которым вы тоже вероятно сталкивались: нужно было взаимодействовать с API который еще не был готов. Я знал общую структуру объекта, который получу по API, но я еще не мог протестировать работу с ним. Как и любой другой разработчик, я написал комментарий, который выглядит так:



В этот момент я хотел бы создать предупреждение в Xcode, такое же как мы привыкли делать в Objective-C с помощью директив компилятора:



Но увы, так не получилось и я загрустил.


Читать дальше →
Total votes 24: ↑21 and ↓3+18
Comments7

Домашний алгоритм разбиения на слова (c картинками)

Reading time3 min
Views9.8K
В этой статье я расскажу и покажу свой способ сегментации строк на слова. Если вам не интересна жизнь сибиряка в тропиках, можете смело пропускать вступление.

image
Читать дальше →
Total votes 34: ↑32 and ↓2+30
Comments12

Почему мобильные веб-приложения такие медленные?

Reading time13 min
Views28K


Добрый день. Наша команда, которая занимается созданием курсов Java на Hexlet, решила заняться переводом статей, которые нам показались очень интересными. Занявшись этим делом мы обнаружили, что на Хабре еще не пробегал перевод великолепнейшей статьи под названием: "Почему мобильные веб приложения такие медленные?". Именно перевод ее части мы и предлагаем Вашему вниманию сегодня. Статья весьма не нова и от того еще больше удивило, что на Хабре не встретили ее перевода, но представляется актуальной (в своих идеях) и по сей день, хотя, само собой, много бенчмарков устарели. Если Хабра-сообществу понравилось начало, то мы опубликуем и вторую часть, а также начнем публикацию переводов других статей, которые нам показались весьма интересными и не представленными на Хабре.
Читать дальше →
Total votes 26: ↑19 and ↓7+12
Comments46

Логика сознания. Часть 5. Смысловой подход к анализу информации

Reading time24 min
Views34K

Известный всем тест Тьюринга говорит о том, что понять: мыслит машина или нет, можно по тому отличим ли мы ее в беседе от человека или нет. При этом подразумевается, что вестись будет не светская беседа, а, по сути, допрос с пристрастием в котором мы будем всячески пытаться загнать машину в тупик. Что мы при этом будем проверять? Только одно — понимает ли машина суть задаваемых нами вопросов. Пытается ли она, просто, формально манипулировать словами или она может правильно интерпретировать значения слов, используя при этом знания, полученные ранее в беседе, или, вообще, общеизвестные людям знания.

Пожалуй, во время теста не особо интересно спрашивать у машины: когда была Куликовская битва. Гораздо интереснее что она скажет, например, о том: зачем мы нажимаем сильнее на кнопки пульта, у которого садятся батарейки?

Различие человеческого мышления и большинства компьютерных алгоритмов связано с вопросом понимания смысла. Как правило, в компьютерную программу закладываются достаточно жесткие правила, которые определяют то, как программа воспринимает и интерпретирует входную информацию. С одной стороны, это ограничивает вольность общения с программой, но, с другой стороны, позволяет избежать ошибок, связанных с неправильной трактовкой нечетко сформулированных высказываний.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments82

Пишем квайн-полиглот-палиндромы в честь дня 2^2^3

Reading time9 min
Views7.6K

PalidromePolyglotQuine


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


Не так давно я узнал о коде, который может одновременно интерпретироваться в PHP и компилироваться в Java: PhpJava.java. Как оказалось, эта идея не нова: код, валидный сразу для нескольких компиляторов или интерпретаторов, называется полиглотом (polyglot). Такой код возможно писать из-за особенностей обработки строк и комментариев в различных интерпретаторах или компиляторах.

Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments11

Оптимизация кода: процессор

Reading time18 min
Views115K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

В этой статье мы рассмотрим базовые техники оптимизации кода, которые могут увеличить производительность вашей программы во много раз. Мы также коснёмся устройства процессора. Понимание как работает процессор необходимо для написания эффективных программ.
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments142

Что такое свёрточная нейронная сеть

Reading time13 min
Views266K


Введение


Свёрточные нейронные сети (СНС). Звучит как странное сочетание биологии и математики с примесью информатики, но как бы оно не звучало, эти сети — одни из самых влиятельных инноваций в области компьютерного зрения. Впервые нейронные сети привлекли всеобщее внимание в 2012 году, когда Алекс Крижевски благодаря им выиграл конкурс ImageNet (грубо говоря, это ежегодная олимпиада по машинному зрению), снизив рекорд ошибок классификации с 26% до 15%, что тогда стало прорывом. Сегодня глубинное обучения лежит в основе услуг многих компаний: Facebook использует нейронные сети для алгоритмов автоматического проставления тегов, Google — для поиска среди фотографий пользователя, Amazon — для генерации рекомендаций товаров, Pinterest — для персонализации домашней страницы пользователя, а Instagram — для поисковой инфраструктуры.


Но классический, и, возможно, самый популярный вариант использования сетей это обработка изображений. Давайте посмотрим, как СНС используются для классификации изображений.


Задача


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


Читать дальше →
Total votes 91: ↑91 and ↓0+91
Comments74

Масштабирование базы данных через шардирование и партиционирование

Reading time11 min
Views162K


Масштабирование базы данных через шардирование и партиционирование


Денис Иванов (2ГИС)


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

Немного расскажу о себе — я работаю в команде WebAPI в компании 2GIS, мы предоставляем API для организаций, у нас очень много разных данных, 8 стран, в которых мы работаем, 250 крупных городов, 50 тыс. населенных пунктов. У нас достаточно большая нагрузка — 25 млн. активных пользователей в месяц, и в среднем нагрузка около 2000 RPS идет на API. Все это располагается в трех датацентрах.

Перейдем к проблемам, которые мы с вами сегодня будем решать. Одна из проблем — это большое количество данных. Когда вы разрабатываете тот или иной проект, у вас в любой момент времени может случиться так, что данных становится очень много. Если бизнес работает, он приносит деньги. Соответственно, данных больше, денег больше, и с этими данными что-то нужно делать, потому что эти запросы очень долго начинают выполняться, и у нас сервер начинает не вывозить. Одно из решений, что с этими данными делать — это масштабирование базы данных.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments17

HTML5 для веб-дизайнеров. Часть 1: Краткая история языка разметки

Reading time7 min
Views13K
HTML5 для веб-дизайнеров

  1. Краткая история языка разметки
  2. Модель HTML5
  3. Мультимедиа
  4. Формы 2.0
  5. Семантика
  6. HTML5 и современные условия


HTML — язык, объединяющий всемирную сеть. Всего лишь посредством набора простых тегов, человечеству удалось создать несравнимую ни с чем по своим масштабам систему связанных между собой страниц и веб-узлов: от Amazon, eBay и Википедии, до личных блогов и сайтов, посвященных котам, похожим на Гитлера.

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

Как и всемирная сеть вообще, HTML — язык разметки гипертекста (HyperText Mark-up Language) — является детищем сэра Тима Берненс-Ли (Sir Tim Berners-Lee). В 1991 году он написал работу, озаглавленную «HTML Tags», в которой описал чуть меньше двух дюжин тегов, предложенных им для разметки веб-страниц.

Идея использовать для этого кодовые слова внутри треугольных скобок, впрочем, не принадлежит сэру Тиму. Такая система на тот момент уже существовала и использовалась в SGML (Standard Generalised Markup Language, стандартный обобщённый язык разметки), и вместо того, чтобы изобретать что-то с нуля, сэр Тим посчитал более рациональным взять за основу уже существующие решения. Аналогичный подход применялся и вообще на всем пути к HTML5 в процессах разработки.

Читать дальше →
Total votes 91: ↑82 and ↓9+73
Comments42

Information

Rating
Does not participate
Location
Чердаклы, Ульяновская обл., Россия
Date of birth
Registered
Activity