Обновить
0

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

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

Индексы в PostgreSQL — 4

Время на прочтение26 мин
Охват и читатели147K

Мы уже рассмотрели механизм индексирования PostgreSQL и интерфейс методов доступа, а также один из методов доступа — хеш-индекс. Сейчас поговорим о самом традиционном и используемом индексе — B-дереве. Глава получилась большой, запасайтесь терпением.

Btree


Устройство


Индекс btree, он же B-дерево, пригоден для данных, которые можно отсортировать. Иными словами, для типа данных должны быть определены операторы «больше», «больше или равно», «меньше», «меньше или равно» и «равно». Заметьте, что одни и те же данные иногда можно сортировать разными способами, что возвращает нас к концепции семейства операторов.
Читать дальше →

Как написать максимально хреновый бэкенд для мобильного приложения

Время на прочтение6 мин
Охват и читатели63K


Известно, что практически ни одно мобильное приложение не обходится без бэкенда.


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


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


Приятного чтения.

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

Возможности PostgreSQL для тех, кто перешел с MySQL

Время на прочтение9 мин
Охват и читатели54K

Крутой varanio буквально на прошлой неделе прочитал на DevConf забойный доклад для всех кто пересел на Посгрес с MySQL, но до сих пор не использует новую базу данных в полной мере. По мотивам выступления родилась эта публикация.


Мы рады сообщить, что подготовка к PG Day'17 Russia идет полным ходом! Мы опубликовали полное расписание предстоящего мероприятия. Приглашаем всех желающих прийти и похоливарить с Антоном лично



Поскольку доклад на DevConf вызвал в целом положительные отзывы, я решил оформить его в виде статьи для тех, кто по каким-то причинам не смог присутствовать на конференции.


Почему вообще возникла идея такого доклада? Дело в том, что PostgreSQL сейчас явно хайповая технология, и многие переходят на эту СУБД. Иногда — по объективным причинам, иногда — просто потому что это модно.


Но сплошь и рядом складывается такая ситуация, когда какой-нибудь условный программист Вася вчера писал на MySQL, а сегодня вдруг начал писать на Посгресе. Как он будет писать? Да в целом также, как и раньше, используя лишь самый минимальный набор возможностей новой базы. Практика показывает, что проходят годы, прежде чем СУБД начинает использоваться более менее полноценно.

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

Антипаттерны для поиска соискателей

Время на прочтение8 мин
Охват и читатели40K

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


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

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

Усатый стрелок из двадцати трёх полигонов

Время на прочтение20 мин
Охват и читатели31K

А давайте отвлечёмся немного и напишем игру в google play? И не такую огромную и неподъёмную фигню, про которую я обычно пишу статьи, а что-нибудь простое и милое сердцу?


На самом деле, всё очень просто: я наконец-то зарегистрировал аккаунт разработчика и очень хочу его опробовать. На момент написания этих строк у меня нет ни одного написанного класса и ни одного нарисованного пикселя. По сути, эта статья — самый настоящий devlog.

Магия SSH

Время на прочтение11 мин
Охват и читатели587K
С SSH многие знакомы давно, но, как и я, не все подозревают о том, какие возможности таятся за этими магическими тремя буквами. Хотел бы поделиться своим небольшим опытом использования SSH для решения различных административных задач.

Оглавление:

1) Local TCP forwarding
2) Remote TCP forwarding
3) TCP forwarding chain через несколько узлов
4) TCP forwarding ssh-соединения
5) SSH VPN Tunnel
6) Коротко о беспарольном доступе
7) Спасибо (ссылки)
Читать дальше →

Руководство: как использовать Python для алгоритмической торговли на бирже. Часть 1

Время на прочтение8 мин
Охват и читатели95K


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

Среди наиболее популярных в сфере финансов языков программирования можно отметить R и Python, также часто используются C++, C# и Java. В опубликованном на сайте DataCamp руководстве речь идет о том, как начать использовать Python для создания финансовых приложений — мы представляем вам серию статей-адаптаций глав этого материала.
Читать дальше →

Как нам помогают нейронные сети в технической поддержке

Время на прочтение7 мин
Охват и читатели15K
Несмотря на всеобщий хайп вокруг машинного обучения и нейронных сетей, несомненно, сейчас на них действительно стоит обратить особое внимание. Почему? Вот ключевые причины:

  1. Железо стало гораздо быстрее и можно легко обсчитывать модели на GPU
  2. Появилась куча неплохих бесплатных фреймворков для нейросетей
  3. Одурманенные предыдущим хайпом, компании стали собирать бигдату — теперь есть на чем тренироваться!
  4. Нейронки в некоторых областях приблизились к человеку, а в некоторых — уже превзошли в решении ряда задач (где тут лопаты продают, надо срочно бункер рыть)

Но управлять этим, по прежнему, сложно: много математики, высшей и беспощадной. И либо ты из физмата, либо сиди и решай 2-3 тысячи задачек в течении двух-трех лет, чтобы понимать, о чем идет речь. Разобраться по дороге на собеседование в электричке, полистав книжку «Программирование на PHP/JavaScript за 3 дня» — не получится, ну никак, и списать никто не даст (даже за ящик водки).


Вам не дадут «списать» модель нейросети даже за ящик водки. Часто именно на Ваших данных публично доступная модель работает внезапно плохо и придется разбираться в тервере и матане

Но зато, ууУУ, овладев основами, можно строить разные предсказательные модели, реализующие интересные и мощные алгоритмы. И вот тут язык начинает заворачиваться и выпадать изо рта, цепляя левый глаз…
Читать дальше →

Как с помощью блокчейна защитить свои данные

Время на прочтение7 мин
Охват и читатели15K
Прошлый, 2016 год оказался богат на новости, связанные с технологией блокчейн и кейсами ее применения в реальной жизни. Barclays провел первую в мире реальную торговую сделку между ирландским производителем молочной продукции Ornua и сейшельской торговой компанией, австралийский финансовый конгломерат Commonwealth Bank of Australia, американская финансовая компания Wells Fargo и компания Brighann Cotton Marketing Australia впервые в мире оформили сделку по продаже и доставке хлопка из США в Китай, а авиакомпания S7 и Альфа-Банк провели первую в России сделку-аккредитив. В связи с этим может показаться, что область применения блокчейна ограничивается исключительно финансовым сектором, однако блокчейн затронул и область защиты данных.


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

Грех администратора или восстановление данных из стучащего HDD Western Digital WD5000AAKX

Время на прочтение10 мин
Охват и читатели51K
В одной маленькой софтверной компании хранение данных было организовано следующим образом: сервер, в котором обыкновенные SATA накопители средствами linux (mdamd) организованы в несколько массивов RAID 1, каждый из которых являлся хранилищем для одного из направлений разработки. Данный вариант при минимальных затратах относительно надежен, если за ним подобающим образом присматривать. Но системный администратор решил, что нет нужды регулярно проверять состояние массивов, и занимался иными делами. В июне 2017, получив жалобы о невозможности прочитать данные от пользователей одного из массивов, обнаружил, что собственно массива уже давно нет, и что на один из накопителей запись прекратилась в августе 2015, а второй с актуальными данными при попытке монтирования подвешивает ОС. Резервная копия за пределы сервера последний раз была сделана в ноябре 2016 года.


рис. 1

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

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

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

10 основных ошибок, совершаемых Django-разработчиками

Время на прочтение12 мин
Охват и читатели105K


В этом руководстве мы рассмотрим основные ошибки Django-разработчиков и узнаем, как их избежать. Статья может быть полезна даже опытным разработчикам, потому что и они совершают такие ошибки, как поддержка неподъёмно больших настроек или конфликтов имён в статических ресурсах.

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

Python: коллекции, часть 3/4: объединение коллекций, добавление и удаление элементов

Время на прочтение6 мин
Охват и читатели88K
Часть 1 Часть 2 Часть 3 Часть 4
imageПродолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python. Будут рассматриваться способы объединения и обновления коллекций с формированием новой или изменением исходной, а также способы добавлять и удалять элементы в изменяемые коллекции.

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

Оглавление:


  1. Объединение строк, кортежей, списков, словарей без изменения исходных.
  2. Объединение множеств без изменения исходных.
  3. Объединение списка, словаря и изменяемого множества с изменением исходной коллекции.
  4. Добавление и удаление элементов изменяемых коллекций.
  5. Особенности работы с изменяемой и не изменяемой коллекцией.
Читать дальше →

Чистая архитектура в Python: пошаговая демонстрация. Часть 1

Время на прочтение8 мин
Охват и читатели94K

Примечание переводчика
Данная статья является переводом. Дословный перевод занял 35 страниц А4 в ворде. Планирую разбить её на 5-6 частей. Думаю, данная тема должна быть полезна многим программистам, желающим писать свои web-приложения лучше и чище. Так же статья полезна тем, кто хочет научиться писать web-приложения с методологией TDD с применением именно модульных тестов, а не интеграционных, как это обычно делалось в тех статьях, что попадались мне на глаза. Если где-то использованы неверные термины или перевод кажется слишком машинным — напишите мне в личку, вряд ли это гугл-транслятор, скорее всего дело в моей косноязычности и посредственном знанием английского языка.

Содержание

Год назад мой друг Roberto Ciatti познакомил меня с концепцией, которую Роберт Мартин называет чистой архитектурой. Дядя Боб много говорит об этой концепции на конференциях и пишет о ней очень интересные статьи. «Чистая архитектура» представляет собой способ структурирования системы программного обеспечения, набор соглашений о различных слоях и ролях их участников, нечто большее, чем строгие правила.


Как он уже говорил в своей статье «Чистая архитектура» (перевод на хабре), идея самого подхода не нова, она строится на множестве концепций, которые продвигались многими разработчиками программного обеспечения в течение последних 3-х десяти лет.

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

Начнём год с позитива: как садятся админы и CIO

Время на прочтение7 мин
Охват и читатели43K


На самом деле, конечно, вот прямо сесть — достаточно серьёзная задача даже при полном раздолбайстве. Но потерять работу за день и больше никогда не вернуться в ИТ-сферу — таких случаев сотни.

Я расскажу несколько баек. В некоторых из них изменены детали, чтобы нельзя было узнать компанию. Если вы узнаете свою — не беспокойтесь, наверняка эти случаи почти типичные для всей страны. Вы же знаете анекдот про первого залетевшего дятла.
Читать дальше →

Релиз Python 3.6 — да, теперь он с нами

Время на прочтение3 мин
Охват и читатели56K


Прошло 15 месяцев, и наконец-то мир увидел релиз языка программирования Python 3.6. Нового довольно много, ведь не зря разработчики ждали целых 15 месяцев. В релизе добавлены новые модули, обновлены стандартные библиотеки, улучшены наборы различных настроек. В целом, Python 3.6 получил много улучшений, что можно считать отличным подарком к Новому Году. Давайте посмотрим подробнее, что принес нам Дед Мороз новый релиз.
Читать дальше →

5 достойных изучения проектов с открытым исходным кодом на React Native

Время на прочтение2 мин
Охват и читатели42K
Изучение открытого исходного кода – это лучший способ научиться писать качественный код, особенно если речь идет о новом инструменте с не полностью сформировавшимися стандартами. Одним из таких инструментов является React Native. Он постоянно дорабатывается, функциональность его API расширяется с каждым релизом, а количество библиотек растет. В то же время большинство обучающих ресурсов по работе с React Native очень поверхностны и не идут дальше вступительных рекомендаций. Но даже несмотря на это, изучение исходного кода должно быть нормой для каждого разработчика.

Я хочу представить 5 проектов с открытым исходным кодом, которые я изучаю сам и советую остальным.

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

Техника безопасности при работе с PostgreSQL

Время на прочтение7 мин
Охват и читатели29K
Так получилось, что я начал работать с PostgreSQL три года назад и за это время умудрился методично собрать все возможные грабли, которые можно вообразить. И сказать по правде, если бы была возможность поделиться с собой трехлетней давности нынешним горьким опытом, моя жизнь была бы куда проще и нервные клетки целее. Именно поэтому я решил написать абсолютно субъективную статью со сводом правил, которых придерживаюсь при разработке на PostgreSQL. Возможно, кому-то эта статья поможет обойти собранные мной грабли (и наступить на другие, ха-ха!).


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

Шпаргалка по Flexbox (CSS3 Flexible Box)

Время на прочтение1 мин
Охват и читатели392K
Мне не нова магия Flexbox, но я не часто ее использую, и поэтому после паузы в использовании мне приходится открывать вот этот пост на CSS-Tricks чтобы освежить память.

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


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

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Время на прочтение44 мин
Охват и читатели269K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →

Сделано в МТИ: система контроля версий Gitless

Время на прочтение4 мин
Охват и читатели37K

Все вы знаете систему Git. Хотя бы слышали — это наверняка. Разработчики, которые пользуются системой, ее или любят, или ругают за сложный интерфейс и баги. Система управления версиями Git де-факто является стандартом в индустрии. У разработчика могут быть мнения о преимуществах Mercurial, но чаще всего приходится мириться с требованием уметь пользоваться Git. Как у любой сложной системы, у нее множество полезных и необходимых функций. Однако, до гениальной простоты добираются не все, поэтому существующая реализация оставляла пространство для совершенствования.

Простыми словами — мудреным приложением было трудно пользоваться. Поэтому в лаборатории Массачусетского Технологического Института взялись за улучшения и отсекли все «проблемные элементы» (ведь то, что для одного проблема, для другого легко может быть преимуществом). Улучшенную и упрощенную версию назвали Gitless. Её разрабатывали с учетом 2400 вопросов, связанных с Git и взятых с сайта разработчиков StackOverflow.

Команда авторов вычленила самые проблемные места в Git, включая две концепции staging и stashing. Затем они предложили изменения, призванные решить известные проблемы.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность