Pull to refresh
7
0
Send message

Аутсорсинг: как защитить свои разработки от копирования

Reading time6 min
Views23K


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

Главный вопрос руководства компаний при работе с внешними подрядчиками звучит так: как можно защитить свой проект от копирования? Рассмотрим оптимальные варианты ответа.
Читать дальше →
Total votes 15: ↑11 and ↓4+7
Comments4

Принципы ИТ-профессионала

Reading time8 min
Views176K
Более 10 лет занимаясь ядрёной смесью из математики, программирования и управления проектами – всем тем, что входит в современное понимание Информационных Технологий — я сформулировал простые правила, которые считаю подходящими для любого профессионала, связанного с ИТ.

Читать дальше →
Total votes 191: ↑141 and ↓50+91
Comments115

Знай сложности алгоритмов

Reading time2 min
Views1M
Эта статья рассказывает о времени выполнения и о расходе памяти большинства алгоритмов используемых в информатике. В прошлом, когда я готовился к прохождению собеседования я потратил много времени исследуя интернет для поиска информации о лучшем, среднем и худшем случае работы алгоритмов поиска и сортировки, чтобы заданный вопрос на собеседовании не поставил меня в тупик. За последние несколько лет я проходил интервью в нескольких стартапах из Силиконовой долины, а также в некоторых крупных компаниях таких как Yahoo, eBay, LinkedIn и Google и каждый раз, когда я готовился к интервью, я подумал: «Почему никто не создал хорошую шпаргалку по асимптотической сложности алгоритмов? ». Чтобы сохранить ваше время я создал такую шпаргалку. Наслаждайтесь!
Читать дальше →
Total votes 312: ↑296 and ↓16+280
Comments99

Введение в анализ сложности алгоритмов (часть 4)

Reading time5 min
Views100K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы могут показаться читателю чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он окажется полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Опубликовано ранее:
Часть 1
Часть 2
Часть 3

Оптимальная сортировка


Поздравляю! Теперь вы знаете о том, как анализировать сложность алгоритмов, что такое асимптотическая оценка и нотация «большое-О». Вы также в курсе, как интуитивно выяснить является ли сложностью алгоритма O( 1 ), O( log( n ) ), O( n ), O( n2 ) и так далее. Вы знакомы с символами o, O, ω, Ω, Θ и понятием «наихудшего случая». Если вы добрались до этого места, то моя статья уже выполнила свою задачу.

Этот финальный раздел — опциональный. Он несколько сложнее, так что можете не стесняясь пропустить его, если хотите.От вас потребуется сфокусироваться и потратить некоторое время на решение упражнений. Однако, так же здесь будет продемонстрирован очень полезный и мощный способ анализа сложности алгоритмов, что, безусловно, стоит внимания.
Читать дальше →
Total votes 58: ↑54 and ↓4+50
Comments6

Введение в анализ сложности алгоритмов (часть 1)

Reading time10 min
Views386K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


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

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →
Total votes 106: ↑98 and ↓8+90
Comments27

Опыт построения b2b-продукта: 3 континента за 6 лет и полведра набитых шишек

Reading time21 min
Views26K
Сегодня нам, компании Maxifier Development, исполняется 6 лет… Ну ладно, соврал, не сегодня. На самом деле случилось это недели две назад, но только сейчас, когда я возвращаюсь из нашего нью-йоркского офиса обратно в родную Самару, наконец-то дошли руки что-то написать по этому поводу.

За шесть лет мы прошли путь от идеи на бумажке до международной компании стоимостью в десятки миллионов долларов. Создали сложный программный продукт в области оптимизации Интернет-рекламы, которым ежедневно пользуются крупные медиа-компании в Европе и Америке и уже подтягивается Россия. Открыли офисы в США, Японии и Англии.

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

Я надеюсь, что теперь мы будем регулярно публиковать статьи, связанные как с нашей предметной областью, так и просто посвященные вопросам разработки, менеджмента, взаимодействия с клиентами и прочим «интересностям» в ИТ. Но в этой, начальной статье хочется просто оглянуться назад, на основные вехи развития нашей компании.
наши скромные завоевания
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments16

Руководство по проектированию реляционных баз данных (10-13 часть из 15) [перевод]

Reading time7 min
Views183K
Продолжение.
Предыдущие части: 1-3, 4-6, 7-9

10. Нормализация баз данных


Указания для правильного проектирования реляционных баз данных изложены в реляционной модели данных. Они собраны в 5 групп, которые называются нормальными формами. Первая нормальная форма представляет самый низкий уровень нормализации баз данных. Пятый уровень представляет высший уровень нормализации.

Нормальные формы – это рекомендации по проектированию баз данных. Вы не обязаны придерживаться всех пяти нормальных форм при проектировании баз данных. Тем не менее, рекомендуется нормализовать базу данных в некоторой степени потому, что этот процесс имеет ряд существенных преимуществ с точки зрения эффективности и удобства обращения с вашей базой данных.
Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments14

Форматы электронной подписи

Reading time6 min
Views100K
Статья посвящена обзору стандартов СMS (Cryptographic Message Syntax) для подписанных сообщений.

Для чего нужен CMS


Стандарт CMS описывает структуру криптографических сообщений, включающих в себя защищенные данные вместе со сведениями, необходимыми для их корректного открытия или использования. Например, в сообщении размещаются защищенные данные, информация об алгоритме хеширования и подписи, времени подписи, сертификате открытого ключа, цепочке сертификации и т.д. Некоторые из указанных атрибутов носят опциональный характер, но приложение может само определить необходимость их наличия. У каждого алгоритма есть набор параметров, который должен быть согласован на обеих сторонах: для ГОСТ 34.10-2001, помимо открытого ключа, это модуль p, коэффициенты эллиптической кривой a и b и порядок циклической подгруппы точек эллиптической кривой q. И все это нужно каким-то образом передать адресату сообщения.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments8

Видеоинтервью из Кремниевой Долины. «Анатомия Игоря Шойфота» — провокационное интервью с известным обитателем Кремниевой Долины

Reading time2 min
Views13K


Игорь Шойфот — основатель, сооснователь, председатель, СЕО и СОО нескольких успешных стартапов (Epsylon Games, Fotki.com, vInternship, и еще более десятка), инвестор, представитель TMT Investments в Америке (с офисом в Сан-Франциско), преподаватель Университета Беркли (один из самых престижных государственных университетов США) и Университета Сан-Франциско, председатель совета директоров крупнейшего украинского инкубатора Happy Farm. Игорь и TMT Investments специализируются на инвестициях (от 250 тысяч $ до 5 миллионов) в продвинутые стартапы, а также помогают стартапам из СНГ и России выйти на международные рынки. Если вы из России или СНГ и приезжали в Долину для поиска инвестиций или бывали на каких-нибудь стартаперских вечеринках, то вы наверняка уже знакомы с Игорем.

Интервью получилось довольно провокационным и длинным, поэтому назвали его в шутку «Анатомия Игоря Шойфота» — типа «всё, что вы хотели, но боялись у Шойфота спросить». Кстати, кто не знает Игоря, предыдущее ознакомительное интервью (не моё) на Хабре было тут, а здесь отличная обучалка от Игоря о том, как делать питч-презентацию
Читать дальше →
Total votes 18: ↑10 and ↓8+2
Comments28

Как работать с дизайнерами

Reading time3 min
Views31K
image


Это перевод интересной статьи о дизайнерах и их принципах работы How to Work with Designers.

Чтобы дизайнеры вас понимали, говорите не о показателях, а о пользователях


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

Еще примеры таких «переводов»:

  • Можем ли мы увеличить кликабельность этой кнопки? → Как нам убедиться, что пользователь знает о новой возможности, которой легко воспользоваться?
  • Нужно, чтобы эти изменения не ухудшили показатели → Необходимо убедиться, что эти изменения не доставят пользователям неудобств.
Читать дальше →
Total votes 43: ↑34 and ↓9+25
Comments11

Курс лекций «Стартап». Питер Тиль. Стенфорд 2012. Занятие 19

Reading time18 min
Views81K

Весной 2012 г., Питер Тиль (Peter Thiel), один из основателей PayPal и первый инвестор FaceBook, провел курс в Стенфорде — «Стартап». Перед началом Тиль заявил: «Если я сделаю свою работу правильно, это будет последний предмет, который вам придется изучать».

Один из студентов лекции записывал и выложил транскипт. В данном хабратопике mg1 переводит девятнадцатое занятие, редактор astropilot.

Занятие 1: Вызов будущего
Занятие 2: Снова как в 1999?
Занятие 3: Системы ценностей
Занятие 4: Преимущество последнего хода
Занятие 5: Механика мафии
Занятие 6: Закон Тиля
Занятие 7: Следуйте за деньгами
Занятие 8: Презентация идеи (питч)
Занятие 9: Все готово, а придут ли они?
Занятие 10: После Web 2.0
Занятие 11: Секреты
Занятие 12: Война и мир
Занятие 13: Вы — не лотерейный билет
Занятие 14: Экология как мировоззрение
Занятие 15: Назад в будущее
Занятие 16: Разбираясь в себе
Занятие 17: Глубокие мысли
Занятие 18: Основатель — жертва или бог
Занятие 19: Стагнация или сингулярность?
Читать дальше →
Total votes 73: ↑69 and ↓4+65
Comments21

Удачная модель ветвления для Git

Reading time10 min
Views998K
Перевод статьи Vincent Driessen: A successful Git branching model

В этой статье я представляю модель разработки, которую использую для всех моих проектов (как рабочих, так и частных) уже в течение года, и которая показала себя с хорошей стороны. Я давно собирался написать о ней, но до сих пор не находил свободного времени. Не буду рассказывать обо всех деталях проекта, коснусь лишь стратегии ветвления и управления релизами.



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

Читать дальше →
Total votes 180: ↑171 and ↓9+162
Comments105

Алгоритмы и структуры данных JDK

Reading time7 min
Views144K
[ english version ]
Периодически проверяя нет ли реализации того или иного стандартного алгоритма в jdk, пришла мысль составить подобный обзор. Также интересны были причины наличия/отсутствия многих известных структур данных.
Формат обзора — только ключевые свойства и особенности структур и алгоритмов в составе jdk, подробности и детали — расписаны в javadoc или легко найти в исходниках.
Надеюсь на конструктивную критику и коллективный разум если что упустил.
Хватит вступлений, итак, давайте рассмотрим что включает в себя текущий jdk 7 и почему.
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments25

Как составить опрос по методу развития клиента (Customer Development) и выжать максимум из него

Reading time6 min
Views14K


Управление стартапом подразумевает большой круг обязанностей. Маркетинг и продажи, любительский HR и бухгалтерский учет, разработка и проджект менеджмент, одним словом, вы должны быть мастером на все руки. Мы все понимаем важность подхода Бережливого стартапа (Lean Startup) и методов развития клиентов (Customer Development), однако, их трудно реализовать на практике. Кстати, если вы еще не наткнулись на CustDev.com, бегите туда прямо сейчас и хватайте книгу Brant’а и Patrick’а The Entrepreneur’s Guide to Customer Development (или русский перевод книги — Стартап вокруг клиента).

Как только вы пообещали себе «выбраться из офиса», чтобы поговорить со своими клиентами и по-настоящему исследовать вопрос о востребованности предлагаемого продукта на рынке (Profit-Market Fit), очень важно выжать максимум из этого мероприятия. Для новичков в методологии развития клиента одной из наиболее сложных вещей является составление опросов, поэтому я бы хотел поделиться тем, как я структурирую опросы для достижения максимальной отдачи от них.
Читать дальше →
Total votes 5: ↑3 and ↓2+1
Comments1

Секретный ингредиент хорошего архитектора

Reading time6 min
Views32K
Что посеешь, то и пожнешь
Из желудя вырастет дуб,
Из семени репейника — только репейник
Профессиональное образование —
это семена, которые мы сеем...


Поиск высококлассных специалистов — один из самых сложных вопросов в бизнесе, связанном с разработкой ПО. Несмотря на все сложности мировой и отечественной экономики, квалифицированных кадров не хватает катастрофически. Количество проектов, требующих высокой квалификации, растет значительно быстрее, чем “зреют” специалисты (разработчик — 2-3 года, ведущий разработчик — плюс 2 года, архитектор решения — плюс 3–5 лет ...).

В результате на рынке труда сложно найти разработчиков, и почти невозможно найти квалифицированных архитекторов. Проблема усугубляется тем, что обучение хорошего разработчика не простая задача, в лучшем случае только половина студентов IT-специальностей, обучающихся по стандартной программе и не имеющих опыта работы, действительно в состоянии выполнять реальные задачи после окончания вуза. При этом, эти студенты, как правило, начинают работать по специальности со 2-3 курса, и сложно понять: они знают и умеют «благодаря» или «вопреки». Возможность обучить архитектора в вузе в принципе вызывает сомнения, если не истерический смех.
Читать дальше →
Total votes 41: ↑34 and ↓7+27
Comments10

Монетизация веб-сервисов: бизнес модели

Reading time4 min
Views5.5K
Мы потратили несколько часов, исследуя онлайн-сервисы из списка Webware 100 Top Web Apps 2008 и изучая их бизнес модели. Следующая диаграмма показывает результаты исследования — 34% сервисов используют рекламную модель, 12% различные схемы подписки, 8% продают виртуальные товары (чаще всего в виде данных для скачивания), такая же доля сервисов предлагает сопутствующие продукты (обычно большие компании-разработчики предлагают бесплатный вариант продукта для привлечения к их платформе) и еще 8% сервисов используют схему «оплата за использование».
Читать дальше →
Total votes 68: ↑63 and ↓5+58
Comments28

Ежедневная работа с Git

Reading time40 min
Views884K
Я совсем не долго изучаю и использую git практически везде, где только можно. Однако, за это время я успел многому научиться и хочу поделиться своим опытом с сообществом.

Я постараюсь донести основные идеи, показать как эта VCS помогает разрабатывать проект. Надеюсь, что после прочтения вы сможете ответить на вопросы:
  • можно ли git «подстроить» под тот процесс разработки, который мне нужен?
  • будет ли менеджер и заказчик удовлетворён этим процессом?
  • будет ли легко работать разработчикам?
  • смогут ли новички быстро включиться в процесс?
  • можно ли процесс относительно легко и быстро изменить?


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

Далее очень много букв случайным образом превратились в пост.
Total votes 200: ↑194 and ↓6+188
Comments44

Information

Rating
Does not participate
Registered
Activity