Как стать автором
Обновить
9
0
Тимур Нозадзе @TimurN

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

Отправить сообщение

Как мы внедрили свою модель хранения данных — highly Normalized hybrid Model. Доклад Яндекса

Время на прочтение 27 мин
Количество просмотров 28K
Общепринятый и проверенный временем подход к построению Data Warehouse (DWH) — это схема «Звезда» или «Снежинка». Такой подход каноничен, фундаментален, вотрфоллен и совсем не отвечает той гибкости, к которой призывает Agile. Чтобы сделать структуру DWH гибкой, существуют современные подходы к проектированию: Data Vault и Anchor modeling — похожие и разные одновременно. Задавшись вопросом, какую из двух методологий выбрать, мы в Яндекс Go пришли к неожиданному ответу: выбирать надо не между подходами, а лучшее из двух подходов.

Темы доклада, который вместе со мной прочитал Николай Гребенщиков:
— DV и AM: в чем разница и где точки соприкосновения
— Гибридный подход к построению хранилища
— Сильные и слабые стороны этого подхода
— Примеры кода
— Дальнейший вектор развития hNhM

— Меня зовут Евгений Ермаков, я руководитель Data Warehouse в Яндекс Go.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 11

Ликбез по типизации в языках программирования

Время на прочтение 12 мин
Количество просмотров 496K
image

Эта статья содержит необходимый минимум тех вещей, которые просто необходимо знать о типизации, чтобы не называть динамическую типизацию злом, Lisp — бестиповым языком, а C — языком со строгой типизацией.

В полной версии находится подробное описание всех видов типизации, приправленное примерами кода, ссылками на популярные языки программирования и показательными картинками.
Читать дальше →
Всего голосов 239: ↑232 и ↓7 +225
Комментарии 180

Почему ваш любимый мессенджер должен умереть

Время на прочтение 18 мин
Количество просмотров 328K
image
Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

Последние годы конкуренция на рынке мессенджеров как никогда высока. Доступный интернет у каждого в смартфоне позволил мессенджерам стать самыми часто используемыми приложениями. Только ленивый сейчас не пишет свой мессенджер. Каждый день выходит новое приложение, обещающее совершить революцию в способах коммуникации. Доходит даже до абсурда вроде приложения Yo, позволяющего слать друг другу только одно слово.
У каждого мессенджера есть своя аудитория, агитирующая пользоваться именно их любимым сервисом. В итоге приходится заводить кучу учетных записей в различных сервисах и устанавливать кучу приложений, чтобы иметь возможность оперативно связаться со всеми необходимыми людьми.

Сложившаяся на данный момент ситуация настолько ужасна, что в перспективе угрожает фундаментальным принципам общения. В данной статье я на конкретных примерах попытаюсь донести одну мысль:

image

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


Читать дальше →
Всего голосов 260: ↑230 и ↓30 +200
Комментарии 357

PostgreSQL vs MySQL

Время на прочтение 8 мин
Количество просмотров 346K


В преддверии своего доклада на конференции PGCONF.RUSSIA 2015 я поделюсь некоторыми наблюдениями о важных различиях между СУБД MySQL и PostgreSQL. Этот материал будет полезен всем тем, кого уже не устраивают возможности и особенности MySQL, а также тем, кто делает первые шаги в Postgres. Конечно, не стоит рассматривать этот пост как исчерпывающий список различий, но для принятия решения в пользу той или иной СУБД его будет вполне достаточно.
Читать дальше →
Всего голосов 174: ↑149 и ↓25 +124
Комментарии 173

«Математика – один из видов искусства»: пост к столетию со дня рождения Мартина Гарднера

Время на прочтение 3 мин
Количество просмотров 59K

Перевод поста Эда Пегга Младшего (Ed Pegg Jr) "Martin Gardner’s 100th Birthday"

Я думаю, содержание этого поста будет интересно всем, кто любит математику и ее красоту, всем, кто знаком с замечательными книгами и задачами Мартина Гарднера, а также будет полезно учителям, школьникам и студентам. Все ссылки в данном посте ведут на сайты Wolfram Demonstrations Project (коллекция бесплатных интерактивных демонстраций, созданных пользователями системы Mathematica на языке Wolfram Language с помощью технологии Computable Document Format (CDF), при этом для вас доступны исходные коды всех демонстраций, а значит, вы можете каждую из них скачать, изучить и изменить под себя) и Wolfram MathWorld (крупнейшая и самая авторитетная онлайн-энциклопедия по математике).

Gardner100_1.gif

Читать далее...
Всего голосов 78: ↑75 и ↓3 +72
Комментарии 18

Тест IELTS — общая информация

Время на прочтение 4 мин
Количество просмотров 13K
image

Регулярно читая посты на Geektimes, нам подумалось, что определенный интерес вызывает тема, связанная с тем, чтобы уехать учиться в зарубежный университет или устроиться на работу в крупную западную компанию за рубежом. Как правило, первое невозможно без сдачи теста, определяющего уровень владения иностранным языком, а для второго это просто большой плюс. В подавляющем большинстве вузов, причем, не только англоязычных стран, требуется сертификат, подтверждающий уровень владения английским. Поэтому мы решили опубликовать для вас подборку из полезных статей об экзаменах IELTS, TOEFL, GMAT, GRE и SAT.

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

А для того, чтобы наши статьи были еще интереснее, просим отписываться в комментариях, указывая интересные для вас темы или вопросы, ибо по жизни именно ответами на подобные вопросы мы и занимаемся. С радостью учтем ваши пожелания в наших будущих публикациях!

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

Давайте начнем!

Читать дальше →
Всего голосов 32: ↑24 и ↓8 +16
Комментарии 16

Секции теста IELTS

Время на прочтение 7 мин
Количество просмотров 17K
image

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

Сегодня же мы хотим более подробно затронуть тему 4-х секций IELTS — Reading, Speaking, Writing и Listening. У каждой из частей есть свои особенности, на которые мы и обратим внимание.

Как всегда, если у вас есть вопросы, замечания или пожелания, оставляйте их в комментариях!


Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 4

Почему свет движется со скоростью света?

Время на прочтение 5 мин
Количество просмотров 84K
(Прим. пер. ― см. прим. пер. в конце поста)

Почему свет движется со скоростью света? Почему он просто не стоит на месте? Что приводит его в движение (тем более, такое быстрое)?

image

Всё и везде, просто по факту своего существования, «движется» со скоростью света (которая на самом деле не имеет ничего общего со светом). Да, это касается и вас тоже. Вот прямо сейчас.

Люди в основном воспринимают «вселенную» как «пространство», нечто отдельное от «времени», и честно говоря, они неправы. Пространство и время — не отдельные штуковины. Вселенная сделана из «пространствовремени», прямо так, без пробела. Вы, наверное привыкли к тому, что «год» — это единица времени, а «световой год» — единица расстояния, то есть это разные вещи; но с точки зрения физика это ровным счетом одно и то же (ну, конечно, смотря каким видом физики вы занимаетесь).

В нашей будничной жизни мы исходим из того, что движение — это некое расстояние (пространство), преодоленное за некое время. Однако, если мы решили, что это одно и то же, наше определение движение внезапно становится полной ерундой. «Я прохожу километр за каждый километр, который я прохожу» — кошмар какой-то!

Читать дальше →
Всего голосов 217: ↑199 и ↓18 +181
Комментарии 303

Механические клавиатуры

Время на прочтение 17 мин
Количество просмотров 761K
Все мы давно ждем массового появления всевозможных кибер-перчаток и виртуальной реальности на каждом шагу, но все равно каждый день в офисе и дома нам приходится работать за такой банальной вещью, как обычная клавиатура.

А раз уж сталкиваешься с вещью регулярно, постепенно возникает вопрос — можно ли найти для работы какие-то более удобные варианты обычных клавиатур?

Итак, некоторое время назад я озаботился сбором информации о клавиатурах, и даже начал готовить информацию для статьи, но к сожалению (к счастью?) нашлась исчерпывающая статья о всех нюансах сразу, которую я решил перевести.

Механические клавиатуры. Путеводитель.

Читать дальше →
Всего голосов 323: ↑313 и ↓10 +303
Комментарии 331

Test::Spec: плюсы, минусы и особенности

Время на прочтение 21 мин
Количество просмотров 10K
image

Test::Spec (https://metacpan.org/pod/Test::Spec) — модуль для декларативного написания юнит-тестов на Perl. Мы в REG.RU активно его используем, поэтому хочу рассказать, зачем он нужен, чем отличается от других модулей для тестирования, указать на его преимущества, недостатки и особенности реализации.

Эта статья не является вводной ни в юнит-тестирование в целом, ни в использование Test::Spec в частности. Информацию по работе с Test::Spec можно получить из документации (https://metacpan.org/pod/Test::Spec и https://metacpan.org/pod/Test::Spec::Mocks). В статье же речь пойдёт о специфике и нюансах этого модуля.

Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 16

Golf от Moscow.pm для всех

Время на прочтение 1 мин
Количество просмотров 8.4K


Всех с пятницей! По итогам недавно прошедшей встречи Moscow.pm я хочу предложить всем желающим посоревноваться в решении задачки.

Гольф (англ. golf) — спортивная игра, в которой отдельные участники или команды соревнуются, загоняя маленький мячик в специальные лунки ударами клюшек, пытаясь пройти отведённую дистанцию за минимальное число ударов.
Wikipedia

Игра, в которую я хочу предложить вам поиграть, также называется Golf. Суть ее в том, чтобы решить поставленную задачу за минимальное количество символов.
Читать дальше →
Всего голосов 34: ↑27 и ↓7 +20
Комментарии 65

Всё, что вы хотели знать об уязвимости Shellshock (но боялись спросить)

Время на прочтение 9 мин
Количество просмотров 132K
Помните Heartbleed? Shellshock можно отнести к той же «весовой категории», с таким же стильным названием, хоть и без классного логотипа (кому-то из департамента маркетинга этой уязвимости надо бы этим заняться). Но у Shellshock есть потенциал стать не менее важной птицей, чем Heartbleed. И сейчас я хотел бы собрать воедино всю необходимую информацию, которая поможет всем желающим справиться с ситуацией и избежать возможных проблем из-за неочевидной, на первый взгляд, угрозы.

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

target = 0.0.0.0/0
port = 80
banners = true
http-user-agent = shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)
http-header = Cookie:() { :; }; ping -c 3 209.126.230.74
http-header = Host:() { :; }; ping -c 3 209.126.230.74
http-header = Referer:() { :; }; ping -c 3 209.126.230.74

Если его применить к диапазону уязвимых IP, то получим такой результат:



Проще говоря, Роберт заставил кучу удалённых машин пинговать его, просто отправив в сеть специально сформированный запрос. Беспокойство вызывает тот факт, что он заставил эти машины выполнить произвольную команду (в данном случае безобидный ping), что открывает широчайшие возможности.
Читать дальше →
Всего голосов 106: ↑96 и ↓10 +86
Комментарии 93

Основная ловушка маркетинга и пиара или что бывает, если вы врёте

Время на прочтение 8 мин
Количество просмотров 127K


Продолжаю рассказывать про человеческий маркетинг. Когда Англия вошла во Вторую Мировую, был очень примечательный эпизод. Военная пропаганда – это то, чему обычно не все и не всегда верят. Официальные каналы преуменьшают потери, преувеличивают успехи. Я сейчас не уверен в числах, но первое же радиосообщение с фронта про воздушный бой было про то, что сбито 40 английских истребителей. Позже пришла информация, что меньше – 34. Через пару дней нашли ещё пилота, совершившего аварийную посадку.

Народ Англии начал верить в то, что передают по радио. Потому что было заметно, что они не стараются врать. Более того, немцы тоже ориентировались на их сводки.

Есть первый железный принцип хорошего маркетинга и пиара – никогда не обещать ни на грамм больше, чем можешь сделать. И никогда не врать. Стоит хоть немного увлечься – и вот в какой-то момент ты станешь обманывать сам себя.
Читать дальше →
Всего голосов 210: ↑199 и ↓11 +188
Комментарии 158

Legacy-фобия

Время на прочтение 7 мин
Количество просмотров 39K
Коллеги, у меня для вас есть замечательная новость, мы получили чудесный проект, его несколько лет писали неизвестные нам разработчики, адрес которых мы вряд ли узнаем (чтобы «поделиться обратной связью»), писали очень давно и не известно под чем, и нам предстоит его поддерживать и развивать. Проект сейчас находится на пике своей производительности и мы скоро упремся, любые неаккуратные изменения могут его положить, но мы будем его развивать. Ура!

Согласитесь, странно звучит? Как бред больного на голову программиста. Кто же любит legacy? Это же всегда говнокод (ведь только мы сами пишем идеально), в нем полно багов (а мы сами пишем без ошибок), ужасные решения (ведь только мы сами выбираем подходящую архитектуру), и почти всегда его сложно читать (ведь только мы сами пишем понятно и красиво).
Читать дальше →
Всего голосов 77: ↑65 и ↓12 +53
Комментарии 27

Практическое руководство по Unicode'изации

Время на прочтение 16 мин
Количество просмотров 28K


Мы, наконец, это сделали! Долгое время позорное наследие CP1251 раздражало разработчиков, наводило на мысли о том, что, как же так? Эпоха Unicode уже давно наступила, а мы все еще используем однобайтовую кодировку и расставляем в разных местах костыли для совместимости с внешними системами. Но причина тому была достаточно рациональная: перевести на Unicode большой проект, в который развился Мой Мир, очень трудоемко. Мы оценивали это в полгода и не были готовы тратить столько ресурсов на фичу, которая не принесет русскоязычной аудитории существенной пользы.

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

Разумеется, первое, что было необходимо для интернационализации проекта, это начать принимать, передавать, обрабатывать и хранить данные в UTF-8. Процедура эта для большого проекта непростая и длительная, по пути нам пришлось решить несколько достаточно интересных задач, про которые мы постараемся рассказать.
Читать дальше →
Всего голосов 74: ↑63 и ↓11 +52
Комментарии 19

Программирование, как новый вид человеческой деятельности

Время на прочтение 6 мин
Количество просмотров 42K
«Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единиц. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста» Академик А.П. Ершов




Предисловие

Есть распространенное мнение: «если бы строители строили дома так же, как программисты пишут программу — первый залетевший дятел разрушил бы цивилизацию». С подачи индийского гуру-программиста Мурали Кришна Чимутури (Murali Krishna Chemuturi), Интернет настойчиво приписывает авторство этой цитаты Джеральду Вайнбергу (Gerald Weinberg), хотя на личном сайте Джеральда она не ищется. Скорее всего, человек, который первый заговорил о психологии в программировании, к этому высказыванию не имеет никакого отношения. И вот, почему.

Это изречение – пример демагогического приемчика. Здесь пропущена главная посылка: разработка ПО это то же самое, что и строительство домов. Эта посылка, по умолчанию, подразумевается как достоверный факт, который не требует доказательства. Применение этого приемчика заставляет неискушенного читателя делать ложный вывод о том, что у программистов, в отличие от строителей, руки растут не из нужного места.

Материальное производство (обработка объектов физического мира) насчитывает десятки тысяч лет истории. На этом пути был накоплен колоссальный объем знаний естественных наук: математики, физики, химии, географии, геологии, биологии и проч.

Позволю крамольную мысль. Разработка ПО – новый вид человеческой деятельности, история которой насчитывает чуть больше полувека. В посте я хочу представить свое видение принципиальных особенностей разработки ПО, которые отличают ее от материального производства и следствий, которые из них вытекают.
Особенности и их следствия
Всего голосов 90: ↑69 и ↓21 +48
Комментарии 45

Функции в Perl

Время на прочтение 11 мин
Количество просмотров 62K
image

В Perl заложено огромное количество возможностей, которые, на первый взгляд, выглядят лишними, а в неопытных руках могут вообще приводить к появлению багов. Доходит до того, что многие программисты, регулярно пишущие на Perl, даже не подозревают о полном функционале этого языка! Причина этого, как нам кажется, заключается в низком качестве и сомнительном содержании литературы для быстрого старта в области программирования на Perl. Это не касается только книг с Ламой, Альпакой и Верблюдом («Learning Perl», «Intermediate Perl» и «Programming Perl») — мы настоятельно рекомендуем их прочитать.

В этой статье мы хотим подробно рассказать о маленьких хитростях работы с Perl, касающихся необычного использования функций, которые могут пригодится всем, кто интересуется этим языком.
Читать дальше →
Всего голосов 106: ↑100 и ↓6 +94
Комментарии 37

Perl Golf от REG.RU на YAPC::Europe 2013

Время на прочтение 19 мин
Количество просмотров 4.8K


С 12-го по 14-е августа в Киеве прошла очередная конференция perl-разработчиков YAPC::Europe 2013. Расширяющие сознание доклады, инсайдерская информация от разработчиков Perl 5 и Perl 6, живые легенды из мира Perl (включая самого Ларри Уолла!), речной круиз и замечательное общение в пабах кулуарах — всё было. Мероприятие заслуживает самой высокой оценки, а организаторы и докладчики (да и все остальные участники конференции) — всяческих похвал и благодарностей.

Однако, общеизвестно, что кроме обычных человеческих радостей perl-программисты склонны к развлечениями особенным, нормальным «хомо сапиенсам» не всегда понятным и близким.

Итак, как мы устроили Perl Golf на YAPC, и что из этого вышло.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 22

Темное программирование

Время на прочтение 7 мин
Количество просмотров 139K
imageПредлагаю перейти на сторону зла, на темную сторону программирования. Ситхи сильнее джедаев. И печенек хватит на всех. Предупреждаю, прежде чем начнете читать далее. Характер при переходе на темную сторону портится.
Прошу под кат
Читать дальше →
Всего голосов 257: ↑203 и ↓54 +149
Комментарии 212

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность