минулій статті ми дізналися, як за допомогою утиліти pg_filedump можна відновити дані, або, принаймні якусь їх частину, повністю вбитої бази даних PostgreSQL. При цьому передбачалося, що ми звідки знаємо номери сегментів, що відповідають таблиці. Якщо ми знаємо частина вмісту таблиці, її сегменти дійсно не складно знайти, наприклад, простим grep'ом. Однак у більш загальному випадку це не так-то просто зробити. До того ж, передбачалося, що ми знаємо точну схему таблиць, що теж далеко не факт. Так от, нещодавно ми з колегами зробили новий патч для pg_filedump, що дозволяє розв'язати названі проблеми.
Читати далі →

Приклад відновлення PostgreSQL таблиць за допомогою нової мега фічі pg_filedump



Дозвольте я розповім вам про одну класної фиче, яку ми з колегами з Postgres Pro нещодавно запилили в утиліті pg_filedump. Ця фіча дозволяє частково відновлювати дані з бази, навіть у разі, якщо база була сильно пошкоджена і інстанси PostgreSQL з такою базою вже не запустиш. Звичайно, хочеться вірити, що потреба в такому функціоналі виникає вкрай рідко. Але на всякий випадок щось подібне хотілося б мати під рукою. Читайте далі, і ви дізнаєтеся, як ця фіча виглядає у дії.
Читати далі →

Один піксель замість тисячі слів



Пару місяців тому, відпочиваючи від реалізації нових можливостей кшталт q_auto і g_auto, я приколюються в нашому командному чаті з приводу того, як різні формати зберігання зображень будуть стискати однопиксельную картинку. У відповідь Orly, редактор блогу, попросив мене написати пост про це. Я сказав: «Звичайно, чому б і ні. Але це буде дуже короткий пост. Адже що можна розповісти про один піксель».

Схоже, я був сильно неправий.

Що можна зробити з одним пікселем?
У ранні роки веба однопіксельні картинки часто використовувалися як милиці для речей, які зараз робляться через CSS. Створення відступів, ліній, прямокутників, напівпрозорих фонів – багато чого можна зробити, просто масштабуючи піксель до потрібних розмірів. Ще одне використання пікселів, яка дожила до наших днів – маячки, засоби для відстеження та аналітики.

В чуйну веб-дизайні однопіксельні картинки використовуються як тимчасові заглушки в очікуванні завантаження сторінки. Більшість браузерів не підтримують HTTP Client Hints, тому деякі варіанти з чуйними зображеннями чекають повного завантаження сторінки, щоб підрахувати актуальний розмір картинок, а потім замінюють однопіксельні картинки потрібними зображеннями за допомогою JavaScript.


Зламана картинка

Читати далі →

Букмарклет в Internet Explorer 11: формат зберігання, ліміти і негласні правила, підступний баг

Після того, як відразу два букмарклета, які працювали у Google Chrome і Firefox, відмовилися працювати в Internet Explorer 11, причому не видавали в консоль ніяких повідомлень про помилки і взагалі не подавали ознак життя, я став розбиратися, в чому ж справа.

Спочатку я вирішив, що справа в ліміті на довжину URL і тим самим на довжину букмарклета. В IE 7 обмеження було в 2083 символу, в IE 11, за запевненнями експериментували користувачів, збільшили ліміт. Потрібно було з'ясувати досвідченим шляхом, яка тепер ця межа.

Але спершу невелике передмову.

Google Chrome зберігає закладки в JSON, Firefox — в базі даних sqlite. Тому назви у закладок можуть бути довільні. IE зберігає кожну закладку як окремий файл, наприклад, в папці %userprofile%\Favorites\Links. Тому браузер буде коригувати назви закладок, щоб вони підходили під норми файлової системи (замінити знаки питання, наприклад). Тому ж в IE не можуть бути в одній папці дві закладки з однаковим ім'ям, а у Google Chrome і Firefox — можуть.
Читати далі →

Що під капотом у віртуальних дисків? (на прикладі VHD і VHDX)



Ви коли-небудь працювали з віртуальними машинами, створювали віртуальні диски? Якщо так, то напевно ви звернули увагу на такі зручні функції, як динамічне збільшення розміру диска (можливість зберігати тільки те, що було записано) і можливість створення snapshot'ов — моментальних знімків стану диска. Якщо вам цікаво дізнатися, яким саме способом досягаються ці можливості і як зберігаються дані в VHD і VHDX файлах — ласкаво просимо під кат.

Читати далі →

Розбір формату файлів локалізації Microsoft Office

Ви ніколи не помічали, що у функції AGGREGATE в Excel у другого набору аргументів неправильне опис аргументів? Фактично, у другому наборі опису аргументів взяті упереміш з другого і першого наборів. Цей баг точно відтворюється в Excel 2010, 2013. Мені стало цікаво, чому так відбувається, адже не можуть Microsoft так халатно ставитися до інтерфейсу одного з своїх основних продуктів. Підсумком став повний розбір формату файлів локалізації MS Office.


Читати далі →

Порівняння Json і YAML

Прийшов день, і конфігураційні файли для нашої програми стали настільки великими, що менеджери натякнули що в JSON-конфігах виходить підозріло багато фігурних і не фігурних скобочек, і їм хотілося б від них позбутися. Був дан тонкий натяк, що непогано б придивитися до YAML, адже ходять чутки що він дуже человекочитаемый. І скобочек ніяких там немає. І списки красиві. Не почути старшим ми природно не могли, змушені були вивчати питання, шукати різницю, плюси і мінуси обох форматів. Очевидно, що такі порівняння затіваються лише для того, щоб підтвердити думку керівників або навіть якщо не підтвердити, то вони знайдуть чому вони мають рацію і чому варто робити зміни :)



Читати далі →