Как стать автором
Обновить
0
0
Андрей Кравец @Andrew_Tailor

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

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

Версионная миграция структуры базы данных: основные подходы

Время на прочтение15 мин
Количество просмотров134K
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

В первом разделе этой статьи я рассматриваю основные проблемы, которые возникают в командах программистов при внесении любых изменений в структуру базы данных. Во втором разделе я попытался выделить основные общие подходы к тому, в каком виде изменения структуры базы данных можно хранить и поддерживать в процессе разработки.
Читать дальше →
Всего голосов 89: ↑87 и ↓2+85
Комментарии83

Как вырастить айтишника

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


Как недавно признался Цукерберг, «я никогда не стал бы программистом, если бы не играл ребёнком в компьютерные игры». Не станем утверждать, что путь к успеху в IT лежит через геймерство. Но всё же без тесного знакомства с самыми разными программами и гаджетами программисту не обойтись. И в наши дни знакомство это начинается с достаточно раннего детства. Информационные технологии уже давно проникли в нашу жизнь. Современные программисты, в детстве игравшие на приставках и компьютерах, зачастую сталкивались с непониманием родителей, в чьей молодости не было подобных вещей. Зато теперь эти самые программеры сами обзавелись детьми и гораздо лучше понимают их увлечения. Зачастую даже становятся этакими наставниками по хайтек-развлечениями, обучая детей премудростям комбо-ударов, постройки юнитов и частой отправки врагов на респаун. Как волки обучают волчат азам охоты. И нам стало любопытно, во что же программисты сегодня могут поиграть со своими детьми? И не просто поиграть, а с пользой для молодого ума.
Читать дальше →
Всего голосов 46: ↑39 и ↓7+32
Комментарии18

52 вопроса, которые вы должны задать на собеседовании

Время на прочтение4 мин
Количество просмотров74K
Вы, наверное, уже знаете, что интервью — это не просто очередной этап при устройстве на работу, это также ваша возможность разобраться, подходит ли вам эта работа. Для этого важно задать некоторые вопросы. Что вы хотите знать об этой должности? О компании? О подразделении? О команде? О корпоративной культуре?



Задавать вопросы бывает сложно. Мы это знаем. Для того, чтобы упростить вам это задание, мы приводим список ключевых вопросов для интервью. Мы определённо не рекомендуем задавать их все. Пожалейте рекрутера!
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии13

Пришелец

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

Предлагаю юмористическую фантастику на тему финансов для всех, в том числе для инопланетян. Написано (мной) еще в 2003 г., впервые опубликовано в 2012, сборник «Об экономике с улыбкой».
Читать дальше →
Всего голосов 109: ↑80 и ↓29+51
Комментарии26

Энергонезависимое решение

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


Понедельник. Постановка задачи


Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
Читать дальше →
Всего голосов 371: ↑359 и ↓12+347
Комментарии149

Безрассудное поведение

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

С увлечением крутя педали, я съехал с проселочной дороги на горячий асфальт. С пригорка открылся очаровательный вид на незнакомую усадьбу. Она была трехэтажной, зато в длину простиралась на добрую сотню метров. Фасад украшали белоснежные колонны, а крыша щетинилась направленными в разные стороны телевизионными тарелками и антеннами. По периметру располагался металлический забор с колючей проволокой.
Читать дальше →
Всего голосов 212: ↑146 и ↓66+80
Комментарии136

Почему я делаю ставку на Julia

Время на прочтение15 мин
Количество просмотров48K
imageСовсем о Julia не говорим тут. Один пост двухлетней давности от Ализара, и всё. Исправляем ситуацию.

Используя разные языки программирования, я постоянно сталкиваюсь с одной и той же проблемой — их создатели без ума от вещей, которые меня практически не волнуют: безопасность, системы типов, гомоиконность и так далее. Всё это очень круто, не спорю, но когда я вожусь по вечерам над своим очередным проектом, мне важна только его работоспособность и производительность. Код — это всего лишь средство для достижения некоторой цели, а его «выразительность» для меня важна так же, как и «выразительность» какого-нибудь каталитического конвертера.

Такой подход к делу некоторые презрительно называют ковбойским программированием. Но мне кажется, что это не самый правильный образ — ковбой вынужден периодически устраивать привалы из-за физических ограничений своего коня. Давайте лучше представим одержимого учёного, эдакого профессора, который неделями пропадает в лаборатории, а потом выходит оттуда изнурённый, с затуманенным взором, со своим новым хитроумным изобретением, которое разваливается при первом же запуске.
Читать дальше →
Всего голосов 88: ↑68 и ↓20+48
Комментарии86

20 профессий будущего

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


«60% лучших профессий ближайшего десятилетия ещё даже не изобретены». — Томас Фрей (Thomas Frey), футурист.

Исследовательское агентство Sparks&Honey предложило своё видение недалёкого будущего. Точнее, видение 20 профессий, которые, по мнению авторов, будут очень востребованы в ближайшее десятилетие.
Читать дальше →
Всего голосов 125: ↑74 и ↓51+23
Комментарии119

Длинная арифметика от Microsoft

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

Введение


Известно, что компьютер может оперировать числами, количество бит которых ограниченно. Как правило, мы привыкли работать с 32-х и 64-х разрядными целыми числами, которым на платформе .NET соответствуют типы Int32 (int) и Int64 (long) соответственно.

А что делать, если надо представить число, такое как, например, 29! = 8841761993739701954543616000000? Такое число не поместится ни в 64-х разрядный, ни тем более 32-х разрядный тип данных. Именно для работы с такими большими числами существует длинная арифметика.

Длинная арифметика — в вычислительной технике операции (сложение, умножение, вычитание, деление, возведение в степень и т.д.) над числами, разрядность которых превышает длину машинного слова данной вычислительной машины. Эти операции реализуются не аппаратно, а программно, используя базовые аппаратные средства работы с числами меньших порядков.
Читать дальше →
Всего голосов 79: ↑66 и ↓13+53
Комментарии33

Конспекты лекций «Haskell как первый язык программирования». Часть1

Время на прочтение3 мин
Количество просмотров46K
image
Привет Habr! Сегодня я достал свои старые конспекты по курсу «Haskell как первый язык программирования» Сергея Михайловича Абрамова и попробую максимально доходчиво и с примерами рассказать об этом замечательном языке тем, кто с ним еще не знаком. Рассказ ориентирован на неподготовленного читателя. Так что, даже если вы впервые услышали слово Haskell…
добро пожаловать под кат.
Всего голосов 35: ↑30 и ↓5+25
Комментарии42

UEFI — Ааа, слышал… но все же, что это?

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

UEFI – взгляд вперед (часть 1/3)


Не так давно приходилось разбираться с тем, что такое UEFI и с чем же его едят. Тема весьма актуальна, а статей на русском языке не очень много. Что же, постараюсь исправить ситуацию и поделиться информацией, кою удалось «нарыть». Для начала, вводная глава для ознакомления с тем, что же такое UEFI и зачем оно нужно.

UEFI (Unified Extensible Firmware Interface) является связующей оболочкой между операционной системой и аппаратной частью (железом). В будущем планируется, что UEFI полностью вытеснит BIOS (Basic Input Output System) и займет его место. UEFI является относительно старой технологией, разработанной в 2005 (Unified EFI Forum) году. Однако, сие высказывание некорректно относительно данной ситуации, так как несмотря на то, что 8 лет довольно большой срок для IT-технологии и в иных сферах за эти годы успевали сменить сразу по нескольку технологий, UEFI изначально развивался довольно медленно и лишь в последние годы стал получать все большую известность. Ниже вы можете ознакомиться с графиком релизов UEFI.



Первоочередной целью при создании UEFI была разработка удобной и многогранной оболочки для 64-х битных систем с более развитым пользовательским интерфейсом и сетевым контролем.
И так, какими же преимуществами обладает UEFI?
Читать дальше →
Всего голосов 52: ↑39 и ↓13+26
Комментарии64

Детский лаунчер 2.Х и единый премиум-аккаунт

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


Что нового


После публикации первой версии приложения к нам поступило большое количество отзывов. Собрав воедино пожелания пользователей и наши собственные идеи, мы начали работу над второй версией. Спустя два месяца упорного труда обновленные приложения Детский Лаунчер и Родительский Контроль доступны для скачивания в Google Play.
Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии24

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

Время на прочтение3 мин
Количество просмотров51K
У программистов есть дети. В этом плане статистика непоколебима.
И эта статья будет интересна как раз тем, у кого есть ребенок в возрасте 5-~9 лет, тем кто уже задумывается или уже задумывался над вопросом как посвятить ребенка в азы программирования.

image
Читать дальше →
Всего голосов 50: ↑43 и ↓7+36
Комментарии52

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

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

Встала задача перебрать все возможные варианты «триангуляций». Это «склейки» из N треугольников, которые подчиняются простым правилам:
  1. Соприкасаться треугольники могут только по ребру
  2. Одно ребро может быть общим только у двух треугольников, не больше


Например, из трёх треугольников уникальных вариантов может быть всего два:
[[A B C], [A B D], [A C D]]
[[A B C], [A B D], [A C E]]

При том, что всего вариантов склеек 120. Мне удалось неплохо оптимизировать процесс перебора, который позволил просчитать почти все варианты вплоть до N = 11, но это всё равно очень мало.
Я расскажу как оптимизировал, может быть у уважаемой публики появятся идеи как этот процесс еще ускорить.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии79

Пара старых задачек по-массачусетски

Время на прочтение5 мин
Количество просмотров20K
Для некоторых мне известны возможные решения. Некоторые изредка встречаются на собеседованиях, реже чем об обедающих философах. Интересно было ознакомиться, как развлекаются в МассТехе.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии87

Криптовалюты — это не только «электронные деньги», но и другие полезные возможности

Время на прочтение4 мин
Количество просмотров26K
«Кролики – это не только ценный мех…»

Последний год шумиха вокруг криптовалют не утихает: биржи растут, как на дрожжах, открываются (и закрываются) крупные сервисы по работе с электронной валютой – как магазины, так и платёжные системы, идут обсуждения в американском сенате. И всё это на фоне прыгающих курсов и общей истерии по поводу цен и возможности быстрого обогащения.

На данный момент мы видим, что криптовалюта пока что является «вещью в себе»: вычислительные мощности используются исключительно для генерации хэшей различными алгоритмами. Существует много разных вариаций на тему «Алгоритм только для CPU», «Алгоритм в бОльшей степени для ASIC-ов», различные алгоритмы для автоподстройки сложности сети и т. д. Но по сути это является вариацией на одну и ту же тему: вычислительные мощности идут исключительно на генерацию новых монет.

Но на самом деле есть и другие применения криптовалют!
Всего голосов 34: ↑31 и ↓3+28
Комментарии27

Вы можете развить свой интеллект: 5 способов максимально улучшить свои когнитивные способности

Время на прочтение17 мин
Количество просмотров506K
Не стоит преследовать цели, которые легко достичь. Стоит нацеливаться на то, что удается сделать с трудом, приложив немалые усилия — Альберт Эйнштейн

Несмотря на то, что Эйнштейн не был нейробиологом, он точно знал все, когда говорил о способности человека добиваться чего-либо. Он интуитивно догадывался о том, что лишь сегодня нам удалось подтвердить с помощью данных, а именно: что заставляет когнитивные способности работать на максимально высоком уровне. По существу: То, что тебя не убивает, делает тебя умнее.
Читать дальше →
Всего голосов 167: ↑135 и ↓32+103
Комментарии108

Картинки с внешних ресурсов — добро или зло?

Время на прочтение6 мин
Количество просмотров33K
Большинство многопосещаемых площадок позволяют размещать у себя картинки с внешних ресурсов. Это очень удобная и полезная фича не только для простых пользователей, но и для людей, собирающих информацию о вас.

Большой брат следит за тобой

Вы хотите узнать больше информации о самых действенных методах? Вам интересно, как с помощью маленькой картинки определить разрешение экрана, локальное время и сменить парочку паролей? Добро пожаловать под кат!
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии20

Я знаю, что ты знаешь, что я знаю, что ты знаешь…

Время на прочтение3 мин
Количество просмотров30K
Вольный перевод одного из ответов с mathoverflow. Ответ, в принципе, такой самодостаточный и интересный, что вполне может быть прочитан и без усвоения сути вопроса. Поэтому, если по каким-либо причинам вы застопорились на прочтении вопроса, я вам советую перейти сразу к ответу.

Вопрос

Иногда в жизни бывают ситуации, которые описываются предложениями типа: «я знаю, что ты знаешь, что я знаю… что-то». Представьте себе, что вы испекли вишневый пирог и положили его остывать на подоконнике, а я потом втихаря его съел. Приведем список все более и более сложных предложений, которые все ближе и ближе подводят нас к полному знанию о происходящем. Например,

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; но вы не знаете, что я знаю». В таком случае, если я съем пирог, то об этом скорее всего никто и не узнает.

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; вы знаете, что я знаю; но я не знаю, что вы знаете, что я знаю». Если я съем пирог, то это может привести к довольно к щекотливой ситуации для меня.

: «Я знаю, что вы испекли пирог и положили его остывать на подоконник; вы знаете, что я знаю; я знаю, что вы знаете, что я знаю; но вы не знаете, что я знаю. что вы знаете, что я знаю». В таком случае после того как я съем пирог у меня останется надежда вывернуть ситуацию так, что вы не узнаете о моем преступлении.


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

Есть ли какие-либо ситуации в жизни, будь-то реальные или искусственные, где переход от к для больших значений может реально повлиять на стратегию действий? А что насчет ? Как такие ситуации моделируются в математике?
Ответ
Всего голосов 59: ↑50 и ↓9+41
Комментарии65

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

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


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

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


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

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

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность