Читать дальше →
MiniM @MiniM
User
Памятка: Как стартапам обеспечить защиту данных в облаке
5 min
12KTranslation
Примечание переводчика: За последние несколько лет тема информационной безопасности окончательно перестала быть уделом гиков и специалист и теперь интересует всех. После разоблачений Сноудена пользователи разнообразных онлайн-сервисов стали задумываться о безопасности своих данных. Теперь компании, которые эту безопасность не обеспечивают, могут столкнуться с огромными имиджевыми и финансовыми потерями в случае хакерской атаки. Часто учетные данные пользователей похищают через сторонние сервисы (как было в случаях с Dropbox и «Яндексом»), но даже в такой ситуации на компанию падает тень, а ее клиенты остаются недовольными.
При этом далеко не все создатели новых проектов уделяют защите данных должное внимание (в результате возникают скандалы, вроде ситуации с анонимным приложением Whisper, информация пользователей которого оказалась не столь анонимной, как предполагалось).
Стивен Коти, главный евангелист по безопасности ИБ-компании Alert Logic, написал материал о том, как стартапам подходить к организации информационной безопасности при использовании облачных сервисов.
+12
Медовый месяц менеджера: как его провести с пользой
7 min
59K«Специалист подобен флюсу: полнота его одностороння». (Козьма Прутков)
Как в нашей отрасли происходит назначение на позицию менеджера? Берем в команде лучшего программиста итут же назначаем вначале проясняем ситуацию:
После чего немедленно происходят две вещи: компания теряет хорошего программиста и приобретаетплохого не вполне опытного менеджера. А старик Демарко со своей компанией друзей-консультантов потом начинает рассказывать, что «проблемы проектов имеют под собой природу скорее социологическую, нежели технологическую».
Результаты нашего недавнего исследования еще раз ткнули в эту нашу отраслевую специфику:
Что и побудило написать эту статью.
Общий эффект от перехода в менеджеры усиливается еще тем, что наш брат-айтишник обычно вначале включает электроприбор («если я мультипоточность на Java реализую, чего — я со стиральной машиной не разберусь?»), а в случае неполадок начинает читать инструкцию. То бишь, начинает изучать науку работы с людьми, когда первые шишки не просто набиты, а поверх них набиты еще два слоя шишек.
Между тем, назначение нового человека на позицию менеджера – ситуация болезненная и крайне неустойчивая. Почему так происходит, и главное что конкретно делать, если назначили именно вас – сегодня и поговорим.
Как в нашей отрасли происходит назначение на позицию менеджера? Берем в команде лучшего программиста и
— Хочешь быть менеджером?
— А чего нужно делать?
— Ну, там колбаски в MS Project двигать и получать плюс 300 баксов?
— Конечно, буду!
После чего немедленно происходят две вещи: компания теряет хорошего программиста и приобретает
Результаты нашего недавнего исследования еще раз ткнули в эту нашу отраслевую специфику:
- Более 50% людей считают, что их руководитель не умеет работать с людьми
Что и побудило написать эту статью.
Общий эффект от перехода в менеджеры усиливается еще тем, что наш брат-айтишник обычно вначале включает электроприбор («если я мультипоточность на Java реализую, чего — я со стиральной машиной не разберусь?»), а в случае неполадок начинает читать инструкцию. То бишь, начинает изучать науку работы с людьми, когда первые шишки не просто набиты, а поверх них набиты еще два слоя шишек.
Между тем, назначение нового человека на позицию менеджера – ситуация болезненная и крайне неустойчивая. Почему так происходит, и главное что конкретно делать, если назначили именно вас – сегодня и поговорим.
+46
Книга Джошуа Кериевски «Рефакторинг с использованием шаблонов»
3 min
4.2KДочитал на днях сабжевую книжку. Вышла она еще в 2008 году (а предыдущее издание и того раньше), но мне она попалась только недавно. По идее, читать ее надо было бы после книги Фаулера «Рефакторинг. Улучшение существующего кода», на которую Кириевски постоянно ссылается, но до Фаулера я пока не добрался, хотя это и не особо затруднило чтение. Вторая книга, которую лучше всего прочитать заранее, это «Приемы объектно-ориентированного проектирования. Паттерны проектирования» банды четырех.
Суть книги «Рефакторинг с использованием шаблонов» состоит в том, что в книге автор собрал 27 довольно сложных рефакторингов, большинство которых предназначены для того, чтобы как можно более безболезненно ввести в архитектуру программы паттерны, описываемые в книге банды четырех. Как пишет в начале Кириевски, часто он начинает программировать без использования паттернов до тех пор пока этот участок кода не надо расширять, тогда он принимается за рефакторинг. Правда, в книге есть еще один рефакторинг, который наоборот избавляет код от использования синглтонов (автор называет болезнь, когда используют синглтоны по любому поводу, синглтонизмом и предлагает открыть общество анонимных синглтоников).
Суть книги «Рефакторинг с использованием шаблонов» состоит в том, что в книге автор собрал 27 довольно сложных рефакторингов, большинство которых предназначены для того, чтобы как можно более безболезненно ввести в архитектуру программы паттерны, описываемые в книге банды четырех. Как пишет в начале Кириевски, часто он начинает программировать без использования паттернов до тех пор пока этот участок кода не надо расширять, тогда он принимается за рефакторинг. Правда, в книге есть еще один рефакторинг, который наоборот избавляет код от использования синглтонов (автор называет болезнь, когда используют синглтоны по любому поводу, синглтонизмом и предлагает открыть общество анонимных синглтоников).
+48
Распознавание изображений. Алгоритм Eigenface
6 min
66KВведение
Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.
В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.
+122
Рефакторинг: миссия (не)выполнима?
4 min
2KЧто делать, если исходники проекта напоминают болото, а жить в нем планируется еще долго? Рефакторинг исходных кодов проекта — это более выгодная из двух альтернатив разобраться с означенной проблемой. Вторая из альтернатив — выбросить и переписать все заново — обычно не устраивает, по разным причинам.
А как делать этот самый рефакторинг, если даже неизвестно, с чего начать? Как осушить болото кода и не утонуть нем?
Конечно, идеальный вариант — считать рефакторинг одной из активности на проекте с самого его начала и выделять на него проектное время команды. В жизни, как ни странно, однако чаще всего оказывается, что предыдущий лид проекта не сильно озадачивался этим вопросом, предпочитая плыть по течению; возможно, он надеялся когда-нибудь сбагрить эту ношу менее удачливому лиду — пока проект еще не развалился; а может быть, просто не знал, что делать. Шеф, усё пропало!
А как делать этот самый рефакторинг, если даже неизвестно, с чего начать? Как осушить болото кода и не утонуть нем?
Конечно, идеальный вариант — считать рефакторинг одной из активности на проекте с самого его начала и выделять на него проектное время команды. В жизни, как ни странно, однако чаще всего оказывается, что предыдущий лид проекта не сильно озадачивался этим вопросом, предпочитая плыть по течению; возможно, он надеялся когда-нибудь сбагрить эту ношу менее удачливому лиду — пока проект еще не развалился; а может быть, просто не знал, что делать. Шеф, усё пропало!
+63
Если бы языки программирования были религиями…
4 min
13KTranslation
С удивлением обнаружил, что в интернете не было перевода на русский довольно забавной статейки, написанной неким Rodrigo Braz Monteiro, в которой он сравнивает языки программирование и религии. Поэтому пришлось делать перевод самому, который ниже и прилагается.
Автору написание этой статьи навеяло сравнение языков программирования с автомобилями(оригинал), а мне это навеяло перевод…
Автору написание этой статьи навеяло сравнение языков программирования с автомобилями(оригинал), а мне это навеяло перевод…
+200
Кунг-фу в командной строке
1 min
1.1K«При проектировании интерфейсов представьте себе, что ваша программа — единственное, что стоит между пользователем и жарким, страстным, со-смятыми-простынями-и-расцарапанной-спиной сексом».
Оригинал, перевод. Лицензия: Creative Commons Attribution-Share Alike 2.5.
+96
Творческий обьектив Lensbaby 3G: новые возможности SLR фотоаппарата
1 min
1.3KОднажды наткнувшись на каком то интернет магазине на секцию творческих объективов, был довольно удивлен, что там оказался всего один объектив Lensbaby разных поколений. Именно название творческий объектив меня и притянуло в данный раздел (для любителей извращений).
Так что же такое творческий объектив?
Так что же такое творческий объектив?
+17
+39
Umbuster — зонт повышенной безопасности
1 min
2.6KЕсли вы идете вечером по району типа Южного Бутово и внезапно над вами начинает сгущаться быдло… Юзайте Umbuster – зонтик разработанный специально для прогулок в районах с неблагополучными климатическими условиями.
Штука продается за 287 долларов.
via srulirecht.com
+73
Задачка
1 min
519Увидев «визуальную загадку», вспомнил, что с ней довалась ещё одна очень интересная задачка.
Продолжить последовательность с обеих сторон:
5 9 26 53 58 9 79
Задачка лёгкая, но догадаться трудно )
В комментариях уже есть решение!
Продолжить последовательность с обеих сторон:
5 9 26 53 58 9 79
Задачка лёгкая, но догадаться трудно )
В комментариях уже есть решение!
+1
Мой знакомый разработчик
4 min
1.2KЯ работаю с удивительным человеком. Каждый раз, когда я смотрю в bugzill'у или проверяю почту, я им поражаюсь. Иногда мне кажется, что он мог бы стать неплохим писателем. Во всяком случае графоман из него отличный.
Этот разработчик принимает документирование очень близко к сердцу.
Этот разработчик принимает документирование очень близко к сердцу.
+54
Нейронные сети: Лекция 2 (+пример на РНР).
3 min
39KСовокупность нейронов соединённых тем или иным способом называется искусственной нейронной сетью или просто нейронной сетью.
Закон по которому нейроны соединены в сеть носит название структуры или топологией сети.
Множество нейронов не соединённых между собой, но соедененные с другими нейронами носит название слоя нейрона.
Сети бывают 2х видов: однослойные, многослойные.
Простой перцептрон состоит из 1го нейрона (один слой) с n входами и пороговой функции активации
Поскольку выходами сети является +1 или -1. То перцептрон эффективен для решение задачи классификации 2х классов.
Закон по которому нейроны соединены в сеть носит название структуры или топологией сети.
Множество нейронов не соединённых между собой, но соедененные с другими нейронами носит название слоя нейрона.
Сети бывают 2х видов: однослойные, многослойные.
Простой перцептрон
Простой перцептрон состоит из 1го нейрона (один слой) с n входами и пороговой функции активации
Поскольку выходами сети является +1 или -1. То перцептрон эффективен для решение задачи классификации 2х классов.
+23
Какая боль! Толпы против Веб — 2:0. Эпизод два — клоны заходят в полдень
5 min
554Продолжаем warstory оптимизации PHP+mySQL сайта редчайших слов. Одним майским днем, копаясь в словах, мне пришла в голову мысль — расставить под этими словами textbox'ы — использовать [модный для Web 2.0] crowdsourcing. Заполняй чем хочешь, только про это конкретное слово. Но, должно было работать collaborative — как Google Docs — если ты и еще кто-то редактируют слова на одной и той же странице — изменения будут отображаться одновременно. Или, например, кто-то редактирует слово «google» на странице Гугла, а на странице TechMeme, к примеру, есть тоже слово «google» — и им в real-time покажутся эти изменения со страницы Гугла [это необязательно понимать]. Знал бы я какие последствия эта веселая задумка на mySQL окажет позже…
Сделать это оказалось несложно: prototype.js — в руки, ajax — каждые 10 секунд, смотрим в базе что менялось за последние 10 секунд, делаем пересечение со словами на текущей странице, отправляем js highlight effect и новый текст — вуаля. Людей было, но мало кто что-то вводил, тогда я придумал повесить в уголок страницы блок «только что было сказано». Например: «На странице 'fibonacci.com' только что было сказано, что 'fibonacci' → 'crazy math scientist'». Это уже значительно заинтересовало людей и заполняемость выросла в разы. Все видели движения на сайте и сами вовлекались.
Собственно, я сделал достаточно функционала для довольно забавной игрушки — «войны сайтов редкими словами», авто-категоризатор, синонимизатор и т.п. Я сидел мирно редактировал «живой» сайт, загружал новый файл, если видел ошибку — исправлял, не переживая, что это кто-то может видеть. Не подозревал я, что уже тысячи людей видят это. После очередной ошибки в названии функци что-то произошло… я не смог загрузить на FTP index.php… это был TechCrunch....
Сделать это оказалось несложно: prototype.js — в руки, ajax — каждые 10 секунд, смотрим в базе что менялось за последние 10 секунд, делаем пересечение со словами на текущей странице, отправляем js highlight effect и новый текст — вуаля. Людей было, но мало кто что-то вводил, тогда я придумал повесить в уголок страницы блок «только что было сказано». Например: «На странице 'fibonacci.com' только что было сказано, что 'fibonacci' → 'crazy math scientist'». Это уже значительно заинтересовало людей и заполняемость выросла в разы. Все видели движения на сайте и сами вовлекались.
Собственно, я сделал достаточно функционала для довольно забавной игрушки — «войны сайтов редкими словами», авто-категоризатор, синонимизатор и т.п. Я сидел мирно редактировал «живой» сайт, загружал новый файл, если видел ошибку — исправлял, не переживая, что это кто-то может видеть. Не подозревал я, что уже тысячи людей видят это. После очередной ошибки в названии функци что-то произошло… я не смог загрузить на FTP index.php… это был TechCrunch....
+70
До свиданья!
1 min
1.3KПоследний пост.
Спасибо всем за поддержку, за критику, за интересные дискуссии!
Писать не перестану, просто буду делать это где-то еще. Пока что писать буду в ЖЖ: vilgeforce.livejournal.com (есть RSS!)
Спасибо тебе, Хабр, за школу жизни и за новых замечательных знакомых! До встречи в сети, друзья!
Спасибо всем за поддержку, за критику, за интересные дискуссии!
Писать не перестану, просто буду делать это где-то еще. Пока что писать буду в ЖЖ: vilgeforce.livejournal.com (есть RSS!)
Спасибо тебе, Хабр, за школу жизни и за новых замечательных знакомых! До встречи в сети, друзья!
-26
Полезные билетики
2 min
3.2KМоя работа имеет специфику долго до нее добираться, причем с пересадкой и на общественном транспорте. Такой транспорт крупных городов многим знаком: в часы пик это наполненные людьми консервы на колесах. Пробки и долгая езда и без того ухудшают и так скверное настроение. Если с утра еще и не выспишься, то тогда полный конец всему рабочему дню.
И всем, безусловно, известен атрибут общественного транспорта — билетик. В повседневной жизни мы не обращаем на него внимания. Иногда только люди выискивают счастливые билеты, а особо суеверные потом его еще и съедают (как говорится: «никто и не представляет себе, что обвал доллара на западе вызван тем, что кто-то в глубинке России сожрал счастливый билетик»).
Под катом я хотел бы рассказать, как вытянуть чуть больше пользы из поездки в общественном транспорте, оценить билетик по достоинству и просто немного развлечься.
И всем, безусловно, известен атрибут общественного транспорта — билетик. В повседневной жизни мы не обращаем на него внимания. Иногда только люди выискивают счастливые билеты, а особо суеверные потом его еще и съедают (как говорится: «никто и не представляет себе, что обвал доллара на западе вызван тем, что кто-то в глубинке России сожрал счастливый билетик»).
Под катом я хотел бы рассказать, как вытянуть чуть больше пользы из поездки в общественном транспорте, оценить билетик по достоинству и просто немного развлечься.
+115
Какая боль! Толпы против Веб — 2:0. Эпизод один — высокоскоростная очередь
5 min
791Тов. phpdude открыл блогом «PHP+MySQL оптимизация» интересную тему, захватывающую большую аудиторию. Расскажу я о том, как я Веб 2.0 убил два моих сервера (из-за моей глупости в т.ч.) и еще планирует поубивать.
Все началось осенью 2006 года, когда я решил открыть небольшой сайтик с 70 миллионами страничек. И нет, они не были бы сделаны по цепям Маркова, а именно были бы полезными. Почему 70 миллионов? Потому что столько .com/.net/.org доменов в тот момент я смог найти.
Все началось осенью 2006 года, когда я решил открыть небольшой сайтик с 70 миллионами страничек. И нет, они не были бы сделаны по цепям Маркова, а именно были бы полезными. Почему 70 миллионов? Потому что столько .com/.net/.org доменов в тот момент я смог найти.
+53
Subversion: чеклист по правильным коммитам
5 min
4.2KПредполагаем, что читатель: а) работает в коллективе; и б) осознал необходимость правильной работы с системами контроля версий или хотя бы поставлен перед необходимостью использовать таковую.
В примерах будет использоваться Subversion, хотя все рекомендации полностью применимы к любой другой системе контроля версий.
Грубо разделим фазы разработки проекта на три — дебют, миттельшпиль и эндшпиль.
В дебюте новый код пишется огромными кусками, зачастую целые куски системы переносятся с места на место. Релиз далеко, никаких особых требований к общему состоянию системы нет. Допустимо даже разламывать систему до некоторых пределов.
В миттельшпиле система в целом стабилизировалась, продукт близится к релизу. Рефакторинг более чёткий, хотя и иногда достаточно обширный. На этом этапе ожидается уже, что система в целом работает — по крайней мере, сломанный репозиторий порицается.
Наконец, в эндшпиль система переходит непосредственно перед релизом и сразу после. Для веб-приложений постоянно добавляются новые относительно небольшие возможности, а крупные изменения сначала тестируются на ветках. Для более традиционных приложений наоборот, создаётся ветка для maintenance релизов, а разработка следующей большой версии продолжается на стволе.
В примерах будет использоваться Subversion, хотя все рекомендации полностью применимы к любой другой системе контроля версий.
Грубо разделим фазы разработки проекта на три — дебют, миттельшпиль и эндшпиль.
В дебюте новый код пишется огромными кусками, зачастую целые куски системы переносятся с места на место. Релиз далеко, никаких особых требований к общему состоянию системы нет. Допустимо даже разламывать систему до некоторых пределов.
В миттельшпиле система в целом стабилизировалась, продукт близится к релизу. Рефакторинг более чёткий, хотя и иногда достаточно обширный. На этом этапе ожидается уже, что система в целом работает — по крайней мере, сломанный репозиторий порицается.
Наконец, в эндшпиль система переходит непосредственно перед релизом и сразу после. Для веб-приложений постоянно добавляются новые относительно небольшие возможности, а крупные изменения сначала тестируются на ветках. Для более традиционных приложений наоборот, создаётся ветка для maintenance релизов, а разработка следующей большой версии продолжается на стволе.
+36
50 цитат о программировании всех времён
6 min
159KTranslation
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.
50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook
49. Lisp — это не язык, а строительный материал.
— Alan Kay
48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
50. Программирование сегодня — это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает.
— Rick Cook
49. Lisp — это не язык, а строительный материал.
— Alan Kay
48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
+328
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity