Pull to refresh
15
0
Дмитрий Урсегов @fdmitry

User

Send message

Магистратура Академического университета РАН: делимся опытом

Reading time7 min
Views25K
Кафедра математических и информационных технологий Санкт-Петербургского Академического университета РАН создана в 2008 году. В этом году ей исполняется 5 лет. Настало время подвести промежуточные итоги и поделиться опытом с сообществом.

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

Зачем мы решили открыть кафедру?


Читать дальше →

Введение в Байесовские методы

Reading time6 min
Views180K

В качестве введения


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

Принципы — вечны, практики — иллюзорны

Reading time4 min
Views12K
Есть большая разница между принципом и хорошей практикой.

Лучшие практики — субъективны и зависят в основном от контекста, в то время как принципы — вечны и универсальны.

После написания статьи «Чем больше я знаю, тем меньше я знаю» (англ.), я получил несколько писем о том, что существуют некоторые практики, которым нужно следовать абсолютно в любом процессе разработки ПО.

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

Обработка естественных языков: недостающий инструмент

Reading time4 min
Views13K


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

Но среди этого обилия инструментов зияет значительный пробел: библиотека для работы с естественными языками.

Читать дальше →

Развенчание мифов об x32 ABI

Reading time7 min
Views18K
Наверное, некоторые из вас слышали о халяве под названием x32 ABI.

Вкратце о x32 ABI


Если вкратце, то это возможность использовать все преимущества 64-битной архитектуры, но при этом сохраняя 32-битные указатели. Потенциально при этом приложение будет расходовать меньше памяти, хоть и не сможет адресовать более 4 ГиБ памяти.

Пример. В своём коде вы определяете массив целых чисел и заполняете его значениями. Сколько при этом вы расходуете памяти? Если очень грубо изобразить, то получится примерно так:
32 бита: Указатель + Счётчик числа элементов + N целых чисел = N+2 32-битных числа
64 бита: Указатель + Счётчик числа элементов + N целых чисел = N+2 64-битных числа = 2N+4 32-битных числа
Вот инженеры и задумались: а что если попробовать использовать 32-битные указатели на 64-битной архитектуре? Архитектура X86-64 имеет систему команд CISC и позволяет это сделать. В этом случае наш массив выше будет расходовать памяти 2N+3 вместо 2N+4. Экономия конечно же незначительная, но дело в том, что в современном коде количество разного рода указателей в структурах нередко доходит до десятка, и использование коротких указателей потенциально позволит экономить до 50% памяти (в идеальном случае).

Для тех кому надо расчёты точнее:
* Насколько большие массивы (и значения) в PHP? (Подсказка: ОЧЕНЬ БОЛЬШИЕ)
* Сколько памяти потребляют объекты в PHP и стоит ли использовать 64-битную версию?

Но как оказалось халявы не будет.
Далее перевод статьи

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

Reading time27 min
Views88K

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

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

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

Остерегайтесь инструментов повышения производительности

Reading time8 min
Views23K
Внимание! Статья представляет собой перевод поста из блога Марка Симэна.

Mark Seeman — архитектор программного обеспечения, проживающий в Копенгагене. Ранее работал разработчиком и архитектором в компании Microsoft. Сейчас Mark является независимым коснультантом. Также Mark является автором небезызвестной книги Dependency Injection in .NET
Статья представляет собой перевод поста из блога Mark Seeman.
В комментариях, исключая, разумеется, обсуждений самого поста Марка, хотелось бы услышать мнения насчёт качества перевода и главное стоит ли в будущем при появлении интересных записей делать перевод и выкладывать сюда (а может и из его старых записей что-то перевести)?
Далее идёт перевод поста Марка.

Эта статья затрагивает тему использования разработчиками инструментов повышения производительности.
Время от времени я бываю втянутым в жаркие дебаты на счёт преимуществ и недостатков ReSharper. Эти дебаты происходят обычно в Твиттере, где ограничением являются 140 символов на сообщение, что является не очень благоприятным условием для ведения детальных дискуссий. Я не хочу пустопорожней болтовни, так что начнём детальное обсуждение.
Читать дальше →

Иерархия принципов проектирования, или самые важные слова для инженеров

Reading time5 min
Views47K
В этой короткой заметке я хотел бы систематизировать (а именно, расположить в иерархию) многие популярные принципы проектирования программных приложений (test-driven development, ООП, SOLID и т. д.), а также рассмотреть следствия из этой иерархии.

В частности, такая иерархия (я надеюсь) позволит лучше расставлять приоритеты в разработке и профессиональном росте, лучше понимать старые технологии и быстрее изучать новые. При появлении новой парадигмы разработки (a la test-driven development) вы сможете быстро включить ее в эту иерархию и, следовательно, быстрее понять, из каких принципов исходили создатели парадигмы и как правильно ее использовать. Новичкам в программировании статья может быть полезна как обзор существующих принципов.

И в качестве самого базового я полагаю разумным считать принцип «управления сложностью/минимизации технической сложности» МакКоннела. А самыми важными срествами минимизации сложности являются модульность и абстракция.
Читать дальше →

12 бизнес-уроков от основателя и гендиректора Amazon Джеффа Безоса. Часть 1

Reading time12 min
Views41K
Переведено в Alconost.

Если сегодня спросить у начинающих предпринимателей на кого они равняются, прозвучат привычные имена: Стив Джобс, Элон Маск, Марк Цукерберг, некоторые вспомнят еще Билла Гейтса. Но, к сожалению, немногие назовут Джеффа Безоса — основателя и генерального директора Amazon.


Читать дальше →

Для чего нужны шаблоны проектирования

Reading time5 min
Views101K
Все чаще и чаще я слышу от разработчиков и читаю в статьях, что шаблоны проектирования (они же дизайн-паттерны) никому не нужны. Мол, они появились во времена «цветения» UML, RUP, CASE систем и прочих чересчур «сложных» инструментов, подходов и практик. А сейчас самое важное — это код рабочий написать, да побыстрее. На умные толстые книжки ни у кого нет времени, разве что для прохождения собеседования. Тех, кто хочет обсудить данную тему, прошу под кат.

Читать дальше →

Icinga в действии. Мониторинг Большого Адронного Коллайдера в ЦЕРН, Швейцария/Франция

Reading time4 min
Views24K
ЦЕРН и Icinga

ЦЕРН — Европейский центр ядерных исследователей, а кроме того это еще и столкновения частиц с частотой 40 МГц и 11000 оборотов по коллайдеру в минуту. Большой адронный коллайдер ЦЕРН – самый большой и мощный ускоритель частиц в мире. Icinga — бесплатная система мониторинга масштаба предприятия с открытым исходным кодом. Со своей стороны Icinga помогает устойчивой работе оборудования БАК на трёх из четырех детекторных площадок. Это оборудование ищет различия между материей и антиматерией, а также дальнейшее подтверждение существования бозона Хиггса и проверяет модели современной физики, в том виде, как мы ее сегодня знаем.

Читать дальше →

Обзор исходного кода Quake 3: Архитектура (Часть 1)

Reading time5 min
Views106K
Так как у меня была одна неделя до моего следующего контракта, я решил закончить мой цикл статей id. После Doom,Doom Iphone, Quake1, Quake2, Wolfenstein iPhone и Doom3, я решил изучить код, который я еще не рассматривал: idTech3 — 3D движок Quake III и Quake Live.
Читать дальше →

Как Google изменил Android при помощи вашего мозга

Reading time4 min
Views57K
В последней версии мобильной операционной системы Android веб-гигант Google сделал большие изменения в том, как ОС интерпретирует твои голосовые команды. Компания сделала систему распознавания голоса, основанную на том, что мы называем нейронной сетью – компьютеризированной обучающей системой, которая ведет себя подобно человеческому мозгу.

Для многих пользователей, говорит Винсент Ванхуск, ученый-исследователь Google, который направлял усилия по разработке сети, результаты были впечатляющими. «Отчасти стало неожиданностью, насколько мы могли улучшить распознавание, просто изменив модель», — говорит он.

Читать дальше →

Собеседование на junior позицию. Антипатерны собеседующих

Reading time12 min
Views300K
Добрый день хабраюзеры! Не так давно я начал искать работу на позицию junior разработчика. Даже благодаря моему скромному резюме мне удалось побывать на не малом количестве собеседований за сравнительно малый промежуток времени. Из каждого собеседовании я выносил для себя что-то новое, где-то были мои проколы, но гораздо интереснее было замечать фэйлы меня собеседующих. Собственно о таких проколах я и хотел бы рассказать.
Читать дальше →

Я придумал Erlang, потому что его не существовало

Reading time4 min
Views50K

Автор статьи — Joe Armstrong, разработчик Erlang

Я, как программист-старожил, люблю иногда вспоминать свою молодость …

Когда, в далеком 1967, я только начинал учиться программировать, я выбирал между языками Fortran и Algol. Про Algol ходило множество слухов, но практически никакой полезной информации нельзя было найти, так что я начал с Fortran.

На написание одной программы в среднем уходило 3 недели:

неделя 1 — написание программы на бумаге и отправка в компьютерный центр, где мне делали перфокарты;
неделя 2 — проверка перфокарт, и загрузка их в компьютер;
неделя 3 — получение и анализ результатов.

Когда компилятор доходил до первой синтаксической ошибки в программе, — он останавливался, и это отбрасывало меня обратно в самое начало, к первой неделе. Для исправления 10 ошибок в программе могло потребоваться 30 недель!
Читать дальше →

В trunk nginx добавлена поддержка WebSockets

Reading time1 min
Views11K
Как известно, до этого в nginx не было поддержки WebSockets:
habrahabr.ru/post/124089
habrahabr.ru/post/96354

18 февраля 2013 в trunk nginx была добавлена поддержка WebSockets (http://trac.nginx.org/nginx/changeset/5073/nginx), что открывает перед разработчиками новые горизонты.

Ждём выхода релиза.
Читать дальше →

Фильтр Калмана

Reading time10 min
Views455K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →

Теория относительности в картинках

Reading time6 min
Views372K
В своей статье я хотел бы рассказать о теории относительности. Эта теория не требуется в представлении. С самого своего создания она была окутана ореолом тайны, поскольку полностью подрывает наши привычные представления о пространстве и времени. Все мы в школе учили формулы теории относительности, но мало кто действительно понимал их. И это не удивительно, ведь человеку, чтобы по-настоящему понять какую-то теорию во всей её красоте, полноте и непротиворечивости, не достаточно знать формулы. Нужно иметь какой-то визуальный ориентир, нужна динамика, чтобы было что-то, что можно повертеть в руках. Я решил восполнить этот пробел и написал небольшую программку, в которой можно «повертеть в руках» пространство-время. Мы, как настоящие исследователи, с помощью небольших экспериментов попытаемся выяснить основные свойства этой загадочной материи.
Под катом много картинок (и ни одной формулы).
Читать дальше →

Магистратура в Техническом Университете Мюнхена

Reading time8 min
Views177K
Привет!

image

Многие читатели хабра — молодые талантливые ребята, заканчивающие университет или находящиеся на одном из старших курсов технических университетов России и СНГ. Наверняка, у многих возникают вопросы, «что делать дальше», «куда идти работать» и так далее. Два с половиной года назад я находился в таком же положении и решил, что еще достаточно молод и красив и успею окунуться с головой в работу позже. А пока, можно посмотреть на другие страны, поучиться и набраться опыта.

Хочу поделиться впечателениями, потому что два года назад я мечтал, что бы появился человек и объяснил мне, как происходит поступление, зачисление, учеба, экзамены, оплата, сдача экзамена по иностранному языку, какой университет лучше и почему и так далее. Но такого человека не было, приходилось везде пробиваться самому сотнями e-mail'ов с вопросами.

Итак, обо всем по порядку:
Читать дальше →

Как стать ведущим разработчиком. Часть 1

Reading time8 min
Views142K
Это перевод статьи, написанной Джоном Оллспоу, который на данный момент является старшим вице-президентом технического отдела в Etsy.

Продолжение перевода здесь

В нашей сфере деятельности нам доступны огромные объёмы знаний, в особенности тех, которые позволяют разработчику стать эффективным. Но почему-то, несмотря на существование множества книг о специфических задачах и обязанностях менеджеров в нетехнических областях, я практически не вижу новых книг или статей о том, как стать хорошим ведущим разработчиком. Замечательным исключением, конечно, являются статьи Кейт Maцудайры [от переводчика: на фотографии, кстати, именно она], немало написавшей о культурных составляющих инженерии.

Но в то же время, все мои знакомые преуспевающие разработчики помнят своих наставников, которые научили их тому, что значит быть „ведущим“.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity