Pull to refresh
-1
0

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

Send message

Профессиональная ревность. Примеры, причины и способы борьбы

Reading time4 min
Views24K
Приветствую тебя, читатель GT.

Обычно я пишу технические статьи, но сейчас хочу осветить один очень тонкий момент, который портит жизнь инженеру (и мне в частности). Это профессиональная ревность. Я не смог найти определение в интернете, но после небольшого объяснения многие инженеры (и другие специалисты) поймут, что с ними такая ревность случалась.

Пример 1:
Вас (или вашу команду) приглашает к себе заказчик, чтобы обсудить проект, который он хочет вам дать. Вы приходите, начинается знакомство, обсуждение, и тут заказчик зовет своего инженера, который работает у них/начинал этот проект/еще один потенциальный исполнитель и т. д.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments63

Архитектура WhatsApp, которую Facebook купил за $19 миллиардов

Reading time20 min
Views87K

В очередной раз хочу предложить свой перевод статьи, на этот раз автор Тодд Хофф, и его статья посвященна архитектуре WhatsApp на момент его покупки Facebook.


Ремарка: в начале статьи содержится рассуждение автора оригинала о том, зачем Facebook купил WhatsApp за баснословные 19 миллиардов. Если это вам не интересно — просто пролистайте, описание архитектуры будет ниже.


Рик Рид в его предстоящем мартовском докладе, озаглавленном "Миллиард с большой 'М': Следующий уровень масштабирования в WhatsApp" раскрывает сногсшибательную статистику WhatsApp:


Что имеет сотни узлов, тысячи ядер, сотни терабайт RAM и надеется обслужить миллиарды смартфонов, которые вскоре станут реальностью по всему миру? Основанная на Erlang и FreeBSD архитектура WhatsApp. Мы столкнулись со многими трудностями при удовлетворении постоянно растущего спроса на наш сервис обмена сообщениями, но мы продолжаем расширять нашу систему с точки зрения размера (> 8000 ядер) и с точки зрения скорости (>70М сообщений Erlang в секунду).
Читать дальше →
Total votes 66: ↑62 and ↓4+58
Comments58

Это маленькое чудо — алгоритм Кнута-Морриса-Пратта (КМП)

Reading time9 min
Views175K
Алгоритм Кнута-Морриса-Пратта используется для поиска подстроки (образца) в строке. Кажется, что может быть проще: двигаемся по строке и сравниваем последовательно символы с образцом. Не совпало, перемещаем начало сравнения на один шаг и снова сравниваем. И так до тех пор, пока не найдем образец или не достигнем конца строки.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments57

Диагностика и устранение утечек памяти в приложениях с TypeScript

Reading time10 min
Views8.4K

Введение


Недавно у нас закончился крупный проект с довольно сложным продвинутым UI. Не вдаваясь в детали, скажем, что внутри браузера было реализовано что-то вроде рабочего стола (desktop) с окнами, перекрытиями и всем, чем полагается. Разумеется, проблемы с утечками памяти не обошли нас стороной. Признаемся честно, до поры до времени сосредоточились на получении бизнес-результата. Когда дошли руки до утечек памяти, то обнаружилось, что окна браузера занимают гигабайты оперативной памяти. Мы классифицировали ошибки и в общем виде выработали подход к их устранению. Этим подходом и хотим поделиться с вами.

По теме утечек памяти в клиентских приложениях написано уже немало. Изначально основную проблему представляли из себя браузеры IE8 и младших версий (смотрите, например:
http://habrahabr.ru/post/141451/
http://habrahabr.ru/post/146784/
https://learn.javascript.ru/memory-leaks).
Но и теперь, когда можно сказать, что IE8 в прошлом, проблемы остаются. Даже применение такого языка как TypeScript не гарантирует их отсутствия. А с учетом того что front-end в web-приложениях становится все сложнее, актуальность проблемы только возрастает.
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments3

Воронка продаж в CRM: не будь тетерей, анализируй потери

Reading time9 min
Views67K
Проведем опыт. Возьмем пластиковую воронку, закроем низ пальцем, нальем полстакана воды. Теперь подставим пустой стакан, откроем отверстие — вылилось ровно полстакана. Очевидно, что калька с английского термина «sales funnel» прочно прижилась, но при этом не отражает истиной сущности. Говоря о воронке продаж, из которой выходит гораздо меньше клиентов, чем вошло, проще представлять многоступенчатый фильтр, на каждом слое которого оседают взвеси, а на выходе — качественная вода. И этот образ справедлив, ведь «funnel» означает в переводе еще и «просачиваться, выходить наружу».

Воронка продаж — один из самых одиозных и одновременно любимых отчетов генеральных директоров, руководителей отделов продаж, маркетологов. Более того, некоторые менеджеры только его и используют.
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments32

Я хочу, чтобы сайты открывались мгновенно

Reading time10 min
Views139K
Здравствуйте, меня зовут Александр Зеленин и я веб-разработчик. Я расскажу, как сделать так, чтобы ваш сайт открывался быстро. Очень быстро.


Я хочу, чтобы мой сайт открывался быстро
Total votes 130: ↑122 and ↓8+114
Comments87

Использование потенциальных полей в сценарии стратегии реального времени

Reading time8 min
Views41K
Реализация поведения юнитов в RTS играх может стать серьезной проблемой. Компьютер, зачастую, контролирует огромное количество юнитов, в том числе и принадлежащих игроку, которые должны передвигаться в большом динамическом мире, попутно избегая столкновения друг с другом, выискивая врагов, защищая собственные базы и координируя атаки для истребления противника. Стратегии реального времени работают в реальном времени, что делает довольно сложным слежение за планированием действий и навигацией.

Этот урок описывает метод планирования течения игры и навигации юнитов, который использует многоагентные потенциальные поля. Он основан на работах под номерами [1, 2, 3]. (Смотри в конце статьи ссылки на используемые материалы)



Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments17

Генерация и решение лабиринта с помощью метода поиска в глубину по графу

Reading time6 min
Views115K
image

В этой статье речь пойдет о самом простом в реализации алгоритме генерации «идеального» лабиринта и его применении для поиска пути.

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

Заинтересовавшихся — прошу под кат.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments26

Как заменить однородный фон прозрачным с помощью Imagemagick

Reading time2 min
Views30K
Бывает, что на сайт загружаются картинки с однородным фоном и возникает потребность в автоматической замене его (фона) на прозрачный.

Часто такая фича нужна для фотографий товаров в интернет-магазине, картинок, которые накладываются на корпоративный фон и других фоток, не портящих дизайн сайта. Вырезать каждую фотку вручную фотошопом довольно грустно, но есть php-методы, с помощью которых это можно «поставить на поток».
image
Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments9

На пути к правильным SQL транзакциям (Часть 2)

Reading time7 min
Views54K


В предыдущей части были рассмотрены основы уровней изоляции транзакций. Здесь я постараюсь копнуть чуть глубже и рассказать при помощи каких инструментов MS SQL Server реализует уровни изоляции.

Как вы могли видеть в предыдущем разделе, существует два способа поддержания изоляции:
  • Основанный на блокировке ресурсов
  • Основанный на создании версионной копии ресурсов.

Режимы, основанные на создании копии данных, достаточно просты для понимания и думаю не требуют особого внимания. При желании углубиться в детали их реализации, я могу предложить обратиться к не плохому описанию на MSDN. Я же хочу рассмотреть, как реализован механизм, основанный на блокировках.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments1

На пути к правильным SQL транзакциям (Часть 1)

Reading time6 min
Views143K


Мне часто приходилось сталкиваться с тем, что люди прекрасно понимают, что такое транзакции в базе данных и для чего они нужны, но при этом не всегда умеют ими правильно пользоваться. Безусловно, для достижения 80-го уровня сакрального знания нужно иметь не один год опыта и прочесть множество толстенных книг по SQL. Поэтому в этой статье я даже не буду пытаться описать всё, что может быть связано с транзакциями в MS SQL. Я хочу затронуть один простой, но очень важный вопрос, который разработчики часто упускают из вида – уровни изоляции транзакций.
Несмотря на то, что тема очень проста, во многих источниках она освящается плохо – информации либо очень мало, либо очень много. Т.е. прочитав 5-6 кратких теоретических определений невозможно их применить на практике. Для уверенного понимания предмета статьи нужно обращаться к специализированной литературе, но там информации на столько много, что далеко не каждый может уделить необходимое время для её усваивания.
Сегодня я хочу поделиться своим простым рецептом, который помог мне раз и на всегда запомнить особенности уровней изоляции транзакций и по сей день помогает без проблем принимать взвешенные решения о выборе необходимого уровня.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments6

Вёрстка адаптивных email-писем: подробное руководство (часть 2)

Reading time10 min
Views35K


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

Сегодня речь пойдет о применении media queries для разных устройств, оптимизации изображений для «мобайла» и повышении эффективности форм подписки.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments13

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 3 из 6

Reading time6 min
Views94K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




А что потом? Я разобрал весь материал!



В статьях 7 и 8 мы поговорим о программировании непосредственно под OpenGL. Есть ненулевая вероятность получить краткий курс OpenCL/CUDA в статьях 9+.

Удаление невидимых поверхностей


Знакомьтесь, это мой друг z-buffer головы абстрактного африканца. Он нам поможет убрать визуальные артефакты отбрасывания задних граней, которые у нас оставались в прошлой статье.



Кстати, не могу не упомянуть, что эта модель, которую я использую в хвост и в гриву, была любезно предоставлена замечательным Vidar Rapp.

Мы её можем использовать исключительно в рамках обучения рендерингу. Это очень качественная модель, с которой я варварски обошёлся, но я обещаю вернуть ей глаза!
Читать дальше →
Total votes 90: ↑89 and ↓1+88
Comments63

Основы статистики: просто о сложных формулах

Reading time6 min
Views298K

Статистика вокруг нас


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

Еще будучи студентом психологического факультета СПбГУ, я заинтересовался когнитивной психологией. Кстати, Иммануил Кант не считал психологию наукой, так как не видел возможности применять в ней математические методы. Мои текущие исследования посвящены моделированию психических процессов, и я надеюсь, что такие направления в современной когнитивной психологии, как вычислительные и коннективисткие модели, смягчили бы его отношение!
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments14

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

Reading time17 min
Views21K
Последняя часть статьи про проектирование больших интернет-магазинов, по крайней мере, их внешнюю часть. В это части вы узнаете про связь с Off-Line торговлей, мультивалютность, мультиязычность, мультибрендовость, статьи, новости, опросы и исследования, поведенческую систему (персонализацию), партнерские программы, адаптивную верстку и приложения, микроформаты, Social CRM, аналитические системы, интеграцию с 1С, интеграцию с внешними БД, интеграцию с торговыми площадками, парсеры, экспорт данных и многое другое. Дальше еще будет серия статей про проектирование внутренней части магазинов, в которую входят бухгалтерия, логистика, CRM, документооборот и многое другое.

Прошлые статьи серии можно найти тут:


«Проектирование магазина. Исследования»
«Проектирование магазина. Модули интернет-магазина»
«Проектирование магазина. Карточка товара и не только»
«Проектирование магазина. Субституты, комплементы, сравнение и другие инструменты увеличения конверсии»
«Проектирование магазина. Личный кабинет, корзина, доставка-оплата, рассылка и другое»
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments3

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Reading time26 min
Views1.1M
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:

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

Перейти к чтению
Total votes 40: ↑37 and ↓3+34
Comments44

Разоблачение 12 юридических заблуждений о программах для ЭВМ

Reading time7 min
Views182K


Заблуждение / опасная привычка На самом деле … Наш совет прост:
1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
− от соблюдения набора критериев, установленных законом;
− от необходимости документально доказать факт создания программы и свои права на них.

Неоформленный SOFT закон не охраняет.

Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
Оформляйте много хороших и разных документов при создании программ для ЭВМ:
— договоры с авторами;
— договоры с подрядчиками;
— технические задания;
— протоколы совещаний и тестов;
— соглашения между соавторами;
— авторское свидетельство;
— сертификат признания интеллектуальной собственности;
— спецификация РИД;
— свидетельство о регистрации программы для ЭВМ (Роспатент).
Читать дальше →
Total votes 149: ↑119 and ↓30+89
Comments210

Мой опыт: Российские интернет банки и карты

Reading time5 min
Views250K
Привет всем! Если вы фрилансер, то наверняка имели дело с банковскими картами. Сейчас на Российском рынке огромное предложение карт, начиная от банковских премиальных, заканчивая скидочными и бонусными от кафе до авиакомпаний.
Сразу хочу сказать, что пост никаким образом не является рекламным. Тут только мое мнение и мой опыт по отношению к Российским банкам и их картам. В обзоре я использовал только те банки, с которыми работал лично.


Читать дальше →
Total votes 131: ↑85 and ↓46+39
Comments437

Жонглирование. Теория. Практика

Reading time5 min
Views40K
Настороженно отношусь к непрофильным топикам, но решил написать этот по следующим причинам:
  • У жонглирования есть своя теория — стройная и математически привлекательная!
  • Мы живем не только работой. Жонглирование — отличное развлечение и разминка после долгого сидения за компом.
  • В пятницу приятно немного расслабиться и почитать не очень серьезные статьи. К тому же, будет чем заняться на выходные, особенно если у вас не было определенных планов.

Теория


Утверждать, что жонглирование — это последовательность бросков, все равно, что сказать, что музыка — это просто последовательность нот. Нельзя назвать это неправдой, но любой, хоть немного знакомый с музыкальной теорией, возмутится последним определением — столь поверхностным и недалеким.
Читать дальше →
Total votes 252: ↑242 and ↓10+232
Comments45

Information

Rating
Does not participate
Registered
Activity