Адрес для входа в РФ: exler.world

Криворукие программисты

13.02.2014 19:21  10975   Комментарии (57)

В программе Clipdiary довольно криво реализована работа с их базой данных, где хранится содержимое буферов. Даже если выставляешь параметр "полностью очищать базу при выходе" - там записи, как это делается в базах, просто помечаются как удаленные, а физически не удаляются. Соответственно, база пухнет. За несколько месяцев она распухает до 20-30 гигов (у меня много больших картинок через буфер копируется), и ее надо чистить, чтобы не забивала место на винте.

Для очистки базы данных там есть специальная кнопочка "Очистить базу данных". И дураку понятно, как должна производиться полная очистка базы: грохаем всю базу, создаем новую, пустую. Эта операция займет полсекунды.

Но криворукие программисты, сделавшие данную программу, легких путей не ищут! Знаете, что они делают? Начинают копировать старую базу в новую, не копируя записи, помеченные как удаленные. Попутно они, вероятно, еще и вычисляют число Пи вплоть до миллионного знака после запятой и обсчитывают сигналы внеземных цивилизаций, потому что я не понимаю, как можно базу в каких-то 15 Гб на очень мощном компьютере с шустрым диском обнулять ДВАДЦАТЬ МИНУТ, шерстя диск так, что он раскаляется.

Двадцать минут они обнуляют базу - этим ребятам надо орден дать с формулировкой "Бездари года".

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

13.02.2014 19:21
Комментарии 57

За годы работы с компрьютером, перепробовал десятки подобных программ.

Попробовал и эту.

И всё таки, остаюсь с той, с которой работаю долгие годы.

Clipboard Recorder

Программа старенькая и уже не поддерживается, хотя плату требует (но добрые люди помогли решить эту проблему - гуглите).

Её плюс - максимальный минимализм и главное достоинство - показ записи в буфере по клику на программе в трее.

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

Вроде бы такая маленькая фишечка, но настолько полезная, что привыкнув её пользоваться, другие программы (подобного типа) использовать (без этой фишечки) уже не могу.
19.08.16 10:26
0 0

Программа классная, но с базой оно конечно не очень. Вариант - поставить фильтр на типы файлов (изображения), чтобы они не писались в базу. Мне, например, нужен менеджер буфера обмена в основном для текстовой информации. Вот сейчас глянул - файл ДБ 28 МБ (ему уже больше года точно)
25.02.14 19:27
0 0

Помнится, после обзора этого менеджера в очередной раз попробовал слезть с CLCL.

Неделю с ней проработал и снёс нафиг. Мне кажется, альтернатив CLCL просто нет. Работает мгновенно. Не тормозит. Ничего лишнего. Никаких глюков и сбоев. У меня настроено на хранение 500 записей в истории и всё это мгновенно открывается по нажатии горячей кнопки. И удобно группируется в меню. Плюс удобно в одном всплывающем окне сделана и история буфера и избранные фрагменты.

Правда я, как програмист, больше работаю с текстом, а не с графикой, но работаю активно.

Кажется, я все возможные программы подобного класса перепробовал уже.
15.02.14 11:32
0 0

github.com/hluk/CopyQ не лучше будет?
14.02.14 16:48
0 0

Алекс, попробуйте ArsClip - шедевральная вещь. Лучшее из того что я пробовал в этой области.
14.02.14 12:01
0 0

Чувствую что день пройдет под знаком копания в коде пяти летней давности и попытки понять что же это за нафик такой случился, вроде все нормально работало 😄


14.02.14 11:14
0 0

Проблема ровно одна: название "Очистить базу данных" для кнопки неудачно. Это, скорее, "Сжать", а не "Очистить". Если очень захотеть - можно прикопаться ещё к тому, что не предусмотрели отдельную кнопку действительно полного удаления базы.

За исключением этого, всё совершенно нормально.

Компактизация БД с удалёнными записями путём копирования в свежую БД только актуальных записей - нормальная практика. И тот же TheBat! так всегда делал и делает (не сжимали папочки на несколько гигов и десятков тысяч писем?), и крупные БД, и вообще практически весь софт. Попробуйте предложить другой метод, гарантирующий (sic!) целостность данных в случае внезапного прерывания процесса компактизации.

Долго исполняется на самом крутом железе? Тоже объяснимо: БД настроена на работу с малыми объёмами (или там вообще SQLite?) и при превышении объёма файла, выделение нового пространства делается очень маленьким блоком (не захватывает сразу несколько сотен мегабайт). Следствие такой политики - безумная фрагментация файла БД. После этого сжатие будет идти, очевидно, медленно. Тем более, что свободное место, вероятно, тоже изрядно фрагментировано и новая БД (куда копируем) тоже выделяет место маленькими порциями, заполняя все фрагментационные дырки свободного места. Авторов тут винить сложно: думаю, они просто ориентировались на текст и не предполагали, что кто-то будет таскать через клипборд гигабайты фотографий. "Очень мощный компьютер" тут совершенно ни при чём - объём памяти, скорость процессора, видеокарты, диагональ монитора - ничего из этого не влияет на вышеуказанное. Роляет только access time диска. Можно поместить эту базу на SSD - будет шустрее.

Кстати, про всплывшую в комментариях идею хранения баз TheBat`а на сетевом драйве - очень порадовало. Вы не пробовали кэш браузера разместить там же? Тоже должны быть незабываемые ощущения.
14.02.14 03:30
0 0

Erelen: Проблема ровно одна: название "Очистить базу данных" для кнопки неудачно. Это, скорее, "Сжать", а не "Очистить". Если очень захотеть - можно прикопаться ещё к тому, что не предусмотрели отдельную кнопку действительно полного удаления базы.



За исключением этого, всё совершенно нормально.

Собственно, да. Проблема только в 1 (одном) неверно подобранном слове. Вина в этом не программиста, а того надмозга, который английский термин Purge (именно им обозначается чистка базы от записей, помеченных как удаленные) перевел тупо в лоб.
14.02.14 13:59
0 0

Алекс сидит на последней версии Фаерфокса, отсюда и мысли такие... ждём обновления.
14.02.14 01:15
0 0

ClipX. Несколько лет пользуюсь. Никаких нареканий
14.02.14 01:14
0 0

давно я хотел спросить у программистов The Bat! - каким местом им вставлены руки в жопу - но после нескольких попыток ПЛАТНОЙ подписки просто забил. Пока у них не будет адекватной работы по сети и адекватной работы с папками - ни копейки больше.

Я ежедневно сталкиваюсь с проблемами этими. Удалил письмо - оно ПОМЕТИЛОСЬ и попало в корзину. Удалил из корзины - оно ПОМЕТИЛОСЬ.

Мне приходится (у нас 4 сотрудника и почта постоянно приходит больших объёмов) РАЗ В ТРИ ДНЯ через "Управление папками" все сжимать, удалять, проверять.

А уж про работу с большими письмами (там, где есть файлы приложенные мегов на 20) по сети (wi-fi b/g) - умереть не встать.

Проблема - нет другого адекватного клиента, на который перевести тетушек 40-60 лет от роду, раз уже когда-то купил и поставил им этот ужас.
13.02.14 23:33
0 0

HawkieRus:
давно я хотел спросить у программистов The Bat! - каким местом им вставлены руки в жопу - но после нескольких попыток ПЛАТНОЙ подписки просто забил. Пока у них не будет адекватной работы по сети и адекватной работы с папками - ни копейки больше.

Я ежедневно сталкиваюсь с проблемами этими. Удалил письмо - оно ПОМЕТИЛОСЬ и попало в корзину. Удалил из корзины - оно ПОМЕТИЛОСЬ.

Мне приходится (у нас 4 сотрудника и почта постоянно приходит больших объёмов) РАЗ В ТРИ ДНЯ через "Управление папками" все сжимать, удалять, проверять.

А уж про работу с большими письмами (там, где есть файлы приложенные мегов на 20) по сети (wi-fi b/g) - умереть не встать.

Проблема - нет другого адекватного клиента, на который перевести тетушек 40-60 лет от роду, раз уже когда-то купил и поставил им этот ужас.


Можно же поставить сжатие папок при выходе. А приложения лучше хранить отдельно от писем. А ещё проще научить тёток пользоваться гмэйлом, и пусть каждая извращается там как хочет.
14.02.14 12:16
0 0

HawkieRus :

После Outlook Express TheBat! кажется верхом совершенства.



Какой почтовый клиент вы рекомендуете использовать?



(не холивара ради, чисто для себя интересуюсь).
14.02.14 00:29
0 0

HawkieRus:
Я ежедневно сталкиваюсь с проблемами этими. Удалил письмо - оно ПОМЕТИЛОСЬ и попало в корзину. Удалил из корзины - оно ПОМЕТИЛОСЬ.

удаляй с шифтом...

сжимать, правда, все равно придётся...





13.02.14 23:55
0 0

Похоже, что под "Очистить базу данных" на самом имеется в виду "Сжать базу данных". Тогда всё правильно -- создаётся новая база, в которой уже нет удалённых записей, но сохранена вся остальная информация. Конечно, для того, чтобы "грохнуть" базу (нет такой кнопки?), этот способ некудышний.

Кстати -- база на диске или на SSD? На SSD сжатие должно пройти относительно быстро.
13.02.14 22:45
0 0

Это, конечно, ваша песочница и ваш песок, но зачем сразу наезжать на разработчиков. Вроде, опытный человек в области ИТ. Сам не пользовался, но по симптомам проблема в том что они используют dbase локальную базу данных (такая оочень древняя система, но и требующая мало ресурсов). Там, если мне память не изменяет, как раз удаление = помечается строка как удаленная, отчистка = сжатие файла. Если в оракле вы этого не видите, то не значит что он тоже так не делает, даже если и быстрее. Хотя там и потребности в памяти и процессоре совсем другого порядка.
13.02.14 22:35
0 0

Morgen: они используют dbase локальную базу данных (такая оочень древняя система, но и требующая мало ресурсов)

Ну может в этом и есть ошибка, использовать dbase, когда есть sqlite? ))
13.02.14 23:00
0 0

Morgen:
Это, конечно, ваша песочница и ваш песок, но зачем сразу наезжать на разработчиков. Вроде, опытный человек в области ИТ. Сам не пользовался, но по симптомам проблема в том что они используют dbase локальную базу данных (такая оочень древняя система, но и требующая мало ресурсов). Там, если мне память не изменяет, как раз удаление = помечается строка как удаленная, отчистка = сжатие файла. Если в оракле вы этого не видите, то не значит что он тоже так не делает, даже если и быстрее. Хотя там и потребности в памяти и процессоре совсем другого порядка.


Для поддержания баланса справедливости в природе, можете представить, как криворукие программисты комментируют последние обзоры Экслера с выражениями. Я представил, это реально смешно!
13.02.14 22:48
0 0

Я работаю с базой корпоративной базой на Оракл онлайн. Это тихий ужас. Кстати главой мелкомягких стал индус )))
13.02.14 21:47
0 0

Anarrich:
Я работаю с базой корпоративной базой на Оракл онлайн. Это тихий ужас. Кстати главой мелкомягких стал индус )))


Если вы ей запросы шлете запросы, то да. А так она у меня в уголочке шуршит на рабочей станции, в виртуалку упакованная и 15 гигов для Oracle это не размер.
13.02.14 23:05
0 0

кто бездарище спорный вопрос

у меня 10 мегов занимает сейчас база данных, 10 МЕГАБАЙТ!

ибо стоит лимит на сохранение 500 последних клипов, конечно если месяцами копипастить и установить лимит в мильОн клипов то соберутся 20 гигов
13.02.14 21:17
0 0

Деревенщина:
кто бездарище спорный вопрос

у меня 10 мегов занимает сейчас база данных, 10 МЕГАБАЙТ!

ибо стоит лимит на сохранение 500 последних клипов, конечно если месяцами копипастить и установить лимит в мильОн клипов то соберутся 20 гигов


У меня там стоит лимит 10 клипов. Запись-то прочитал, осознал?

www.nakka.com

Лет 10 пользую.
13.02.14 21:09
0 0

Alex Exler: выставляешь параметр "полностью очищать базу при выходе"

Ну так сделайте батничек, который сперва будет удалять базу, а потом запускать программу - будет практически аналогичное "полностью очищать базу при входе".
13.02.14 20:33
0 0

diamant:
Alex Exler: выставляешь параметр "полностью очищать базу при выходе"

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


Да это-то понятно.
14.02.14 00:26
0 0

diamant:
Alex Exler: выставляешь параметр "полностью очищать базу при выходе"

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


Батничек на нынешние времена некошерно.

Создавайте cmd-шку.
13.02.14 20:50
0 0

Вспомнилось. Лет 10 назад меня безумно веселил факт, что оракл на таблице со сложными индексами в которую постоянно вставлялись/удалялись записи через некоторое время исполняет select count(*) from table_name; за несколько МИНУТ даже если она пустая. Видимо это какая-то суровая традиция в области баз данных.
13.02.14 20:06
0 0

Xecutor: Вспомнилось. Лет 10 назад меня безумно веселил факт, что оракл на таблице со сложными индексами в которую постоянно вставлялись/удалялись записи через некоторое время исполняет select count(*) from table_name; за несколько МИНУТ даже если она пустая. Видимо это какая-то суровая традиция в области баз данных.

Это же Oracle. Вы вставляете, удаляете, а он все это помнит !
13.02.14 21:53
0 0

Xecutor:
Вспомнилось. Лет 10 назад меня безумно веселил факт, что оракл на таблице со сложными индексами в которую постоянно вставлялись/удалялись записи через некоторое время исполняет select count(*) from table_name; за несколько МИНУТ даже если она пустая. Видимо это какая-то суровая традиция в области баз данных.


Вам надо было использовать какое нибудь условие, для включения индексов - иначе он делает полный перебор всех записей :

select count(*) from table_name Where table_name.id>0
13.02.14 20:23
0 0

Художника обидеть может каждый.
13.02.14 19:56
0 0
Теги
Сортировать по алфавиту или записям
BLM 21
Calella 143
exler.ru 272
авто 441
видео 3985
вино 359
еда 498
ЕС 60
игры 114
ИИ 29
кино 1579
попы 190
СМИ 2751
софт 930
США 131
шоу 6