Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ручной сборщик мусора

Самодельные щипцы для сбора мусора

Привет самодельщикам, а также дачникам и владельцам приусадебных участков!

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

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

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

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

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

Для этого мне потребовались следующие принадлежности:

Материалы и крепежные элементы:
• Две деревянные рейки сечением 1,2х1,2 см, и длиной по 90 см.
• Несколько отрезков прочной резины.
• Небольшая пружина.
• Четыре шурупа по дереву 4х12 мм.
• Один гвоздь диаметром 2,5 мм, и длиной 50 мм, а также несколько мелких гвоздиков.
• Три шайбы от болтов диаметром 4 мм, или 6 мм.

Инструменты:
• Карандаш и угольник.
• Электродрель-шуруповерт.
• Небольшой молоток.
• Сверло по металлу диаметром 2,5 мм.
• Отвертка или отверточная бита РН2, для заворачивания шурупов.

Процесс изготовления

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

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

Затем прикрутил этот отрезок резины к рейкам при помощи шурупов.

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

Острый конец гвоздя забил молотком в другую рейку.

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

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

И вот мои щипцы готовы!

Чуть попозже нужно будет еще покрасить их краской, но в первую очередь нужно испытать их в деле.

Испытания

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

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

Также подобрал отрезок железа от профнастила.

А затем взялся за очистку уличной территории примыкающей к нашему забору.

Поднял щипцами банку от пива, а заодно прихватил и вторую.

А вот поднял даже тяжелую пивную бутылку.

Весь этот и другой мусор, я прямо щипцами складывал в ведро.

В общем, данные щипцы себя полностью оправдали. Мусор ими собирать достаточно легко и удобно, при этом вообще не надо наклоняться и руки остаются совершенно чистыми.

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

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

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

Ну и на этом у меня все! Всем пока и чистых приусадебных и дачных участков!

Записки программиста

Обзор механизмов сборки мусора

15 октября 2012

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

Ручное управление памятью

Ручное управление памятью просто до безобразия. Когда приложению нужно сколько-то памяти, оно говорит malloc или new, а когда память перестает быть нужной — free или delete. Жизнь прекрасна и удивительна, вопрос закрыт… или нет?

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

Однако ручное управление памятью до сих пор широко применяется в Си, C++ и других языках. Хотя бы по той причине, что не во всякой задаче мы можем позволить себе использование сборщика мусора. В качестве примера таких задач на ум приходит разработка драйверов, компиляторов, кодеков/архиваторов, требовательных к производительности серверных приложений и трехмерных компьютерных игр.

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

Счетчики ссылок

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

Этот метод практически не уступает по производительности ручному управлению памятью, но при этом позволяет существенно сократить количество присущих ему ошибок. Поддержка кода также упрощается. Существенная проблема данного подхода заключаются в том, что при наличии циклических ссылок некоторые счетчики никогда не обратятся в ноль и память утечет. Для борьбы с этим применяют слабые указатели (weakptr), которые не участвуют в подсчете ссылок.

Читать еще:  Как закачать флеш плеер

Счетчики ссылок вполне успешно используется в C++ (так называемые умные указатели) и Perl.

Трассирующий сборщик мусора

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

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

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

Копирующий сборщик мусора

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

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

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

Но есть и ряд недостатков. Первое, что бросается в глаза — 50% выделенной памяти большую часть времени не используется. Но с другой стороны, в результате фрагментирования памяти неиспользуемым может оказаться куда больший процент, так что, возможно, об этом как раз особо и не стоит беспокоиться. А вот что в действительности вызывает беспокойство, это то, что многие долгоживущие данные будут постоянно копироваться из одной кучи в другую.

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

Если не ошибаюсь, подход с использованием двух куч либо используется, либо когда-то использовался в Java.

Трассирующий и уплотняющий сборщик мусора

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

В результате долгоживущие данные скапливаются в начале кучи и не перемещаются при каждой сборке мусора. Память используется более эффективно, чем в случае использования двух куч. Однако алгоритм работы сборщика мусора усложняется. Для того, чтобы избежать лишнего копирования данных, по всей видимости, потребуется введение множества оптимизаций типа «не уплотнять данные, если уровень фрагментации в этой части кучи не превышает 25%» и тп.

Сборщик мусора по поколениям

В основу сборщика мусора по поколениям (generational garbage collector) положена идея о том, что большинство объектов (здесь будет удобно позаимствовать терминологию из ООП) перестают использоваться вскоре после создания. В связи с этим все объекты объединяются в различные поколения.

Новые объекты считаются объектами первого поколения. Если такой объект переживает первую (или в общем случае N-ую) сборку мусора, он помещается в множество объектов второго поколения, проверяемых реже. Если объекты из этого множества также переживают сборку мусора (или несколько сборок), они перемещаются в множество объектов третьего поколения, проверяемое еще реже, и так далее.

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

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

Гибридные решения

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

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

Сборщик мусора

В этой и последующих статьях мы займемся исследованием сборщика мусора в .NET (Garbage Collector, GC) , одного из основных механизмов, оказывающих существенное влияние на производительность приложений для .NET. Освобождая разработчиков от хлопот, связанных с освобождением памяти, сборщик мусора вводит другие проблемы, которые необходимо учитывать при разработке программ, производительность которых имеет большое значение.

Назначение сборщика мусора

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

При создании сборщика мусора в .NET преследовались две основные цели:

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

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

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

Читать еще:  Сбор диагностических данных варфейс

Управление свободным списком

Управление на основе списка свободных блоков — это механизм управления распределением памяти в стандартной библиотеке языка C, который также по умолчанию используется функциями управления памятью в C++, такими как new и delete. Это детерминированный диспетчер памяти, при использовании которого вся ответственность за выделение и освобождение памяти ложится на плечи разработчика. Свободные блоки памяти хранятся в виде связанного списка, откуда изымаются блоки памяти при выделении, и куда они возвращаются, при освобождении.

Он изымает блоки из списка при выделении памяти и возвращает их обратно при освобождении. Приложение обычно получает блоки памяти, хранящие их размеры в служебной области.

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

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

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

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

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

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

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

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

Сборка мусора на основе подсчета ссылок

Сборщик мусора, опирающийся на подсчет ссылок, связывает каждый объект с целочисленной переменной — счетчиком ссылок. В момент создания объекта счетчик ссылок инициализируется значением 1. Когда приложение создает новую ссылку на объект, его счетчик ссылок увеличивается на 1. Когда приложение удаляет ссылку на существующий объект, его счетчик ссылок уменьшается на 1. Когда счетчик ссылок достигает значения 0, объект можно уничтожить и освободить занимаемую им память.

Одним из примеров управления памятью на основе подсчета ссылок в экосистеме Windows является объектная модель программных компонентов (Component Object Model, COM). Объекты COM снабжаются счетчиками ссылок, определяющими продолжительность их существования. Когда значение счетчика ссылок достигает 0, объект может освободить занимаемую им память. Основное бремя подсчета ссылок ложится на плечи разработчика, в виде явного вызова методов AddRef() и Release(), хотя в большинстве языков имеются обертки, автоматизирующие вызовы этих методов при создании и удалении ссылок.

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

Высокая стоимость управления: всякий раз, когда создается или уничтожается ссылка на объект, необходимо обновлять счетчик ссылок. Это означает, что к стоимости обновления ссылки прибавляются накладные расходы на выполнение таких тривиальных операций, как присваивание ссылки (a = b) или передача ссылки в функцию по значению. В многопроцессорных системах выполнение таких операций требует применения механизмов синхронизации и вызывает «пробуксовку» кеша процессора, при попытке нескольких потоков выполнения одновременно изменить счетчик ссылок.

Использование памяти: счетчик ссылок на объект должен храниться в памяти объекта. Это на несколько байтов увеличивает объем памяти, занимаемой объектом, что делает подсчет ссылок нецелесообразным для легковесных объектов. (Впрочем, это не такая большая проблема для CLR, где к каждому объекту «в нагрузку» добавляется от 8 до 16 байт.)

Правильность: при управлении памятью на основе подсчета ссылок возникает проблема утилизации объектов с циклическими ссылками. Если приложение больше не ссылается на некоторую пару объектов, но каждый из них продолжает хранить ссылку на другой объект (как показано на рисунке ниже), возникает утечка памяти. Эта проблема описывается в документации COM, где явно оговаривается, что такие циклические ссылки должны уничтожаться вручную. Другие платформы, такие как язык программирования Python, поддерживают дополнительные механизмы определения циклических ссылок и их устранения, применение которых влечет за собой увеличение стоимости сборки мусора.

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

Сборка мусора в Python

Метод выделения и освобождения памяти в Python — автоматический. Пользователь не обязан предварительно выделять или освобождать память, аналогично использованию динамического выделения памяти в таких языках, как C или C ++.
Python использует две стратегии для выделения памяти:

  • Подсчет ссылок
  • Вывоз мусора

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

# Literal 9 — это объект

# Счетчик ссылок объекта 9
# становится 0.

Буквальное значение 9 является объектом. Счетчик ссылок объекта 9 увеличивается до 1 в строке 1. В строке 2 его счетчик ссылок становится равным нулю при разыменовании. Таким образом сборщик мусора освобождает объект.

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

# создать список x

# Ссылочный цикл создан

# здесь, поскольку х содержит ссылку на

Поскольку create_cycle () создает объект x, который ссылается на себя, объект x не будет автоматически освобожден, когда функция вернется. Это приведет к тому, что память, которую использует x, будет удерживаться до вызова сборщика мусора Python.

Способы сделать объект пригодным для сбора мусора

# удалить список из памяти или
# присвоение объекта x None (Null)

Читать еще:  Технические средства сбора информации

Счетчик ссылок для созданного списка теперь равен двум. Однако, поскольку он недоступен изнутри Python и не может быть использован снова, он считается мусором. В текущей версии Python этот список никогда не освобождается.

Автоматическая сборка мусора циклов

Поскольку эталонные циклы требуют вычислительной работы для обнаружения, сборка мусора должна быть запланированной операцией. Python планирует сборку мусора на основе порога выделения объектов и освобождения объектов. Когда количество выделений минус количество освобождений больше порогового значения, запускается сборщик мусора. Можно проверить порог для новых объектов (объекты в Python, известные как объекты поколения 0), импортировав модуль gc и запросив пороги сбора мусора:

# получить текущую коллекцию
# пороги как кортеж

print ( «Garbage collection thresholds:» ,

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

Ручная сборка мусора

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

# Импорт модуля gc

# Возвращает количество
# объектов, которые он собрал
# и освобожден

# Печатает сборщик мусора
# как 0 объект

print ( «Garbage collector: collected» ,

«%d objects.» % collected)

Если создано несколько циклов, то как работает ручной сбор:
Пример:

# создать цикл и на каждой итерации x как словарь
# присвоено 1

# списки очищаются всякий раз, когда полная коллекция или
# коллекция самого высокого поколения (2) запущена

collected = gc.collect() # или gc.collect (2)

print «Garbage collector: collected %d objects.» % (collected)

print «Creating cycles. «

for i in range ( 10 ):

print «Garbage collector: collected %d objects.» % (collected)

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

Самодельные щипцы для сбора мусора

Привет самодельщикам, а также дачникам и владельцам приусадебных участков!

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

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

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

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

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

Для этого мне потребовались следующие принадлежности:

Материалы и крепежные элементы:
• Две деревянные рейки сечением 1,2х1,2 см, и длиной по 90 см.
• Несколько отрезков прочной резины.
• Небольшая пружина.
• Четыре шурупа по дереву 4х12 мм.
• Один гвоздь диаметром 2,5 мм, и длиной 50 мм, а также несколько мелких гвоздиков.
• Три шайбы от болтов диаметром 4 мм, или 6 мм.

Инструменты:
• Карандаш и угольник.
• Электродрель-шуруповерт.
• Небольшой молоток.
• Сверло по металлу диаметром 2,5 мм.
• Отвертка или отверточная бита РН2, для заворачивания шурупов.

Процесс изготовления

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

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

Затем прикрутил этот отрезок резины к рейкам при помощи шурупов.

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

Острый конец гвоздя забил молотком в другую рейку.

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

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

И вот мои щипцы готовы!

Чуть попозже нужно будет еще покрасить их краской, но в первую очередь нужно испытать их в деле.

Испытания

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

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

Также подобрал отрезок железа от профнастила.

А затем взялся за очистку уличной территории примыкающей к нашему забору.

Поднял щипцами банку от пива, а заодно прихватил и вторую.

А вот поднял даже тяжелую пивную бутылку.

Весь этот и другой мусор, я прямо щипцами складывал в ведро.

В общем, данные щипцы себя полностью оправдали. Мусор ими собирать достаточно легко и удобно, при этом вообще не надо наклоняться и руки остаются совершенно чистыми.

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

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

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

Ну и на этом у меня все! Всем пока и чистых приусадебных и дачных участков!

Ссылка на основную публикацию
Adblock
detector