Pull to refresh
0
Karma
0
Rating

User

Уровни изоляции транзакций с примерами на PostgreSQL

Website development *PostgreSQL *SQL *

Вступление


В стандарте SQL описывается четыре уровня изоляции транзакций — Read uncommited (Чтение незафиксированных данных), Read committed (Чтение зафиксированных данных), Repeatable read (Повторяемое чтение) и Serializable (Сериализуемость). В данной статье будет рассмотрен жизненный цикл четырёх параллельно выполняющихся транзакций с уровнями изоляции Read committed и Serializable.


Для уровня изоляции Read committed допустимы следующие особые условия чтения данных:


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


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


Что же касается Serializable, то данный уровень изоляции самый строгий, и не имеет феноменов чтения данных.

Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 165K
Comments 18

Настройка сервера Quake Live — пошаговое руководство

Configuring Linux *Server Administration *
Sandbox
Quake 3, как много в этом звуке…


За последние 16 лет, с момента выхода первой версии, q3 изменился не сильно. Не поймите неправильно — игра менялась. Развились и канули в лету турнирные моды (Привет, osp, cmpa — мы вас помним!), родился quake live в браузере, перебрался в steam. Чемпионатов стало меньше, игроков на серверах — тоже.

Но бесшабашная динамика осталась практически неизменной. В современной инкарнации, Quake Live — всё та же старая-добрая игра, вобравшая в себя все лучшие наработки за прошедшие годы.

Чего стоит только сервер minqlx, написанный на python, с поддержкой плагинов и кросс-серверной статистикой на qlstats.net, и огромный marketplace в стиме с дополнительными режимами игры, картами, звуками.

И хоть серверов сейчас намного больше, чем игроков — данный очерк скорее претендует на демонстрацию возможностей, и не призывает их бездумно плодить. Но, если вы просто хотите свой небольшой сервер для игры с друзьями долгими зимними вечерами, и не знали с чего начать, или Вам просто интересно, как сейчас происходит процесс установки — добро пожаловать под кат!
Читать дальше →
Total votes 39: ↑35 and ↓4 +31
Views 22K
Comments 38

Генерация фиктивных данных с Mimesis: Часть I

Python *Django *
Sandbox
image

Mimesis — это библиотека для языка программирования Python, которая помогает генерировать фиктивные данные для различных целей. Библиотека написана с использованием средств, включенных в стандартную библиотеку языка Python, потому не имеет никаких сторонних зависимостей. На данный момент библиотека поддерживает 30 языковых стандартов (в числе которых и русский) и более 20 классов-провайдеров, предоставляющих разного рода данные.


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


  1. Сбор необходимой информации.
  2. Постобработка собранных данных.
  3. Программирования генераторов данных.

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

Читать дальше →
Total votes 46: ↑45 and ↓1 +44
Views 32K
Comments 40

Полный перевод Unix-коанов на русский язык

Programming *


Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

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

Итак
Total votes 126: ↑123 and ↓3 +120
Views 74K
Comments 65

Как работает реляционная БД

VK corporate blog Algorithms *
Tutorial
Translation
Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
Читать дальше →
Total votes 232: ↑229 and ↓3 +226
Views 500K
Comments 134

Искусство командной строки

Open source *


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Total votes 127: ↑122 and ↓5 +117
Views 246K
Comments 143

Как не угробить архитектуру сразу же? Видео с лекции Евгения Кривошеева

JUG Ru Group corporate blog Programming *System Analysis and Design *Designing and refactoring *
Всем привет!

Две недели назад в Москве прошла очередная встреча CodeFreeze. Нашим гостем стал Евгений Кривошеев, признанный российский эксперт в области архитектуры программных систем, консультант из Scrumtrek/Skilltrek. Евгений прочитал офигеннейшую лекцию по архитектуре, как он любит и умеет.



В рамках этой встречи Евгений предложил обсудить последовательность решений, критичных для архитектуры любой системы. Выстраданная последовательность действий такова:
  • Точки зрения на систему, или Почему мы слепнем при проектировании
  • Адресация ключевых рисков, или Гордыня убивает
  • Учитываем контекст, или Как не долбиться в закрытую дверь

Краткое содержание и видеозапись
Total votes 46: ↑43 and ↓3 +40
Views 59K
Comments 12

Коллективный разум ХабраХабра выбрал лучшие игры всех времен и народов на 2013 год

History of IT Games and game consoles
Коллективный разум ХабраХабра выбралучшие игры всех времен и народов на 2013 год

Этим постом подвожу итог попытки определить лучшие игры всех времен и народов по версии Хабрахабра на 2013 год.

Отбор проводился по простым правилам:

− В этот пост каждый желающий вносил свою любимую игру,
− Каждый другой желающий голосовал за любимую игру.

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

Основные итоги


Всего в посте собралось за 5 дней больше 1 800 комментариев. Игр было указано около 400. Набрали больше 20 голосов 121 игра. При подсчете учитывались только плюсы (минусы не считал, ибо мы выбирали то, что нравится). Итак, встречайте десятку лучших:

  1. Герои Меча и Магии (259)
  2. Half Life (254)
  3. Fallout (211)
  4. Portal (182)
  5. Neverhood (174)
  6. DOOM (153)
  7. Civilization (151)
  8. StarCraft (150)
  9. Космические рейнджеры (128)
  10. Warcraft (127)

Читать дальше →
Total votes 219: ↑191 and ↓28 +163
Views 299K
Comments 208

Жизнь разработчика (в картинках)

Website development *
Взято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.

Когда я показываю босу, что окончательно пофиксил баг



Когда проджект-менеджер входит в офис



Читать дальше →
Total votes 884: ↑700 and ↓184 +516
Views 63K
Comments 132

Эволюция интеллектуальных сетей #Генезис

Network technologies *
Очень странно, что на Хабре не развивается тема криптовалютных сетей. Эти сети сейчас активно развиваются, и этому есть целая вселенная причин. По моему скромному мнению эти системы, со временем, свернут голову каждому без исключения разработчику по одной простой причине — они позволяют делать такие штуки, которые раньше было делать невозможно. После трех лет изучения того, как работает Биткоин автору стало очевидно, что криптовалютная составляющая — это верхушка айсберга. А дьявол кроется в интеллекте этих сетей. Мы будем периодически выпускать обзоры. Но это будут обзоры не новостного характера, а более структурированного — ориентированного на знания. Указанный список ресурсов мы используем практически каждый день, чтобы лучше понимать как устроен весь этот зоопарк.

Обзоры будет накапливаться на Github в Gitbook формате. Будем благодарны за помощь в создании и переводе на английский.
Читать дальше →
Total votes 17: ↑14 and ↓3 +11
Views 9.3K
Comments 9

oDesk (Upwork). Мой опыт за полтора года

Freelance
Вот уже полтора года я зарабатываю фрилансом на бирже oDesk. За это время у меня накопилось много материалов по данной теме. В данном топике я собрал все в одну статью и адаптировал для аудитории хабра.
image
Читать дальше →
Total votes 192: ↑185 and ↓7 +178
Views 444K
Comments 321

Основы репликации в MySQL

MySQL *
С репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
Читать дальше →
Total votes 72: ↑70 and ↓2 +68
Views 317K
Comments 44

Обзор бесплатных сервисов для веб-разработки

Website development *
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →
Total votes 157: ↑136 and ↓21 +115
Views 143K
Comments 119

Пишем красивый идиоматический Python

Python *
Sandbox

Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.

Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
Читать дальше →
Total votes 125: ↑99 and ↓26 +73
Views 106K
Comments 71

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Мосигра corporate blog

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →
Total votes 294: ↑282 and ↓12 +270
Views 283K
Comments 130

Как я делал W-Mouse — игровую мышь с уникальными способностями

DIY
Sandbox


Как известно все фломастеры разные на вкус, и естественно такой специфичный дивайс как игровая мышь, не может удовлетворять абсолютно всем требованиям и желаниям конкретного человека.
Многие выбирая мышь и пытаясь подобрать для себя наилучший вариант, читают тесты и обзоры, общаются на форумах. Но зачастую купив мышь и с сожалением осознав, что не подходит, вынуждены идти в магазин менять или покупать другую.
Один гениальный человек, с ником Walkie, решил самостоятельно разработать и сделать себе мышь которая бы отвечала его желаниям и требованиям… И сделал. И назвал он её W-Mouse.
Walkie сделал мышь не только себе, но научил делать w-mouse-ы, других хороших людей.
Читать дальше →
Total votes 85: ↑77 and ↓8 +69
Views 157K
Comments 35

Android Intents Library

Development for Android *
image

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

Примерами таких действий могут быть сканирование QR кода, отправка СМС сообщения, звонок, захват изображения камерой телефона, просмотр адреса или координат на карте и т.д.

Для разных задач в интенте необходимо указывать различные action, category, type, extras. А так как этот код повторяется из приложения в приложение и чтобы каждый раз не искать информацию о нужном интенте на stackoverflow, я решил собрать такие интенты в библиотеку.
Читать дальше →
Total votes 45: ↑41 and ↓4 +37
Views 17K
Comments 16

Git Workflow

Git *

1 Вступление



В топике освещаются не столько подробности работы с git, сколько его отличия от схемы разработки других систем контроля версий, и общий подход (выработанный по большей части личным опытом и Git Community Book) к работе.


Читать дальше →
Total votes 120: ↑116 and ↓4 +112
Views 114K
Comments 147

Continuous Integration для самых маленьких

Website development *.NET *
Tutorial

Вы все еще публикуете проект вручную? Тогда мы идем к вам


Под катом гайдлайн по внедрению CI для .NET проектов «с нуля», включающий:
  1. Автоматические ежедневные сборки
  2. Уведомления о проблемах
  3. Интеграцию с баг-трекером и системой контроля версий
  4. Версионирование продукта
  5. Версионирование базы данных
  6. Автоматизированные выкладки и бекапы

Читать дальше →
Total votes 48: ↑41 and ↓7 +34
Views 115K
Comments 46

Сказ о том, как бы я продвигал сайт или не так страшно SEO как его малюют

Search engines *
Tutorial

Сначала предметная область


SEO стратегия
Изначально была мысль написать очень подробный мануал, но потом решил остановиться на стратегиях.

Ключи/запросы


Это фразы, которые набираются в поиске, для достижения результата (ответа на вопрос, покупки, получения информации…)
По частотностям
НЧ – низкочастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть будет все что ниже 300 запросов (хотя в каждой группе по разному).
СЧ – среднечастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть это будет все что выше 300 и ниже 2000 запросов (хотя в каждой группе по разному).
ВЧ – максимальное значение количества поисков простого запроса, к примеру «Светильник».
По конкуренции
НК – низкоконкурентные запросы, по которым есть шанс двинуться в топ (мало точных вхождений поисковой фразы, мало главных страниц, низкое количество результатов в поисковой выдаче)
СК – средне конкурентные запросы, по которым есть шанс продвинуться в топ, но есть и конкуренция (весь топ занят или главными или точными вхождениями, но показатели ссылочной массы конкурентов низкие)
ВК – высококонкурентные запросы, по которым необходимо из кожи вон вылезти чтоб продвинуться (и топ весь занят, и ссылочная масса ужасающая) при средних бюджетах ВК топ недостижим, но можно долго работать, чтоб кардинально поменять выдачу (закупка сателлитов, ссылочной массы, грамотное внутренне СЕО).

Семантическое ядро


Предполагает, что будет оптимизироваться каждая страница сайта. Это значит, что страница конечно будет давать ответ на запрос пользователя, но при этом на ней должен быть материал, который включает в себя эти ответы. То есть признаки, по которым ПС сможет выдать именно эту страницу на это запрос…
Пока что это сами запросы пользователей – они же «КЛЮЧИ»
Ключевые фразы подбираются для каждой страницы персонально.
Для главной страницы берутся общие запросы (описывающие общую категорию и выделяющие общую тематику сайта).
Для страницы категории выбираются запросы более узкой тематики, выделяющие отдельную категорию в общей всего сайта.
Для страницы товара/услуги – берутся максимально конкретные запросы, отражающие ее суть и позволяющие максимально точно ее/его идентифицировать.

0 Стратегия: Тариф Беззаботный


Минимум затрат, так как трафик тупо покупается у ПС. Других вариантов нет.

1 Стратегия: На халяву


Низкоконкурентный трафик – занимается ниша, где есть спрос, но нет конкурентов – классический «кто первый встал – того и тапки».
Схема до боли проста – ищем свободные ниши, подбираем НК запросы, пишем материал (даем полезное на запрос пользователя) – попадаем в ТОП, для усиления эффекта можно закупить по парочке ссылок.
Посмотреть нормальные стратегии...
Total votes 152: ↑89 and ↓63 +26
Views 88K
Comments 56

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity