O Cultivo de Buracos no Asfalto

janeiro 28, 2024

Domingo, 28 de janeiro de 2024, entre 6 e 7 horas da manhã. Rua da Liberdade, de intenso tráfego no sentido Avenida das Bandeiras – Rua Calógeras. Passei pela rua nos dias 18, 25 e hoje. Os buracos existentes (cerca de 15), estão sem remendo desde aquela primeira data, ou seja, há pelo menos 10 dias. A sequência de fotos está no sentido inverso ao do tráfego intenso.

Como se vê nas fotos acima, e nas fotos abaixo, salvo alguma rara exceção, os buracos se formam junto a um remendo. É que esses remendos não são feitos por profissionais especializados ou mesmo por artesãos, mas sim, por funcionários não qualificados, que não se preocupam em fazer com que os remendos fiquem na mesma altura do piso circundante. Ao contrário, colocam excesso de massa asfáltica, criando protuberâncias no pavimento.

Essas protuberâncias: a) propiciam, nas chuvas, a retenção de água em alguma de suas bordas; b) fazem com que as rodas dos veículos, nos pontos de desnível, trepidem, como se fossem marteletes a bater no asfalto. E o bater repetido num mesmo ponto, em desnível e com água parada, causa a ruptura e afundamento do asfalto. Além disso, o recorte do asfalto, em retângulo (quando isto ocorre), antes da aposição do CBUQ, aumenta muito o perímetro do remendo, e assim as áreas críticas que permitem a retenção de água da chuva.

O serviço de tapa-buracos não deveria ser feito por marreteiros, mas por artesãos ou profissionais especialmente habilitados.

E para terminar, abaixo o último buraco, muito pequeno, quase na chegada à Avenida das Bandeiras. E ao fundo, um vazamento na rede de abastecimento de água.

P.S.- Novas fotos da mesma rua. Primeiramente, os 4 buracos da 9ª foto acima, vistos nos dias 6/2 e 8/2 (este, um dia chuvoso):

Agora, vistas atualizadas (de 6/2 e 8/2) do buraco da 10ª foto da postagem original:

Bom, não poderei acompanhar o estado da rua nos próximos dias, já que viajarei para o interior. Mas do dia 18 de janeiro até o dia 8 de fevereiro, são mais de 21 dias de descaso da empresa tapadora de buracos.

PS 2: Os buracos da Rua da Liberdade, no trecho entre a Calógeras e a Bandeiras, continuam a fazer história (de pelo menos 45 dias). Limitando-nos aqui ao cruzamento dos 4 buracos, a primeira foto abaixo é do dia 18/02/2014, 09h42min; a segunda, do dia 29/02/2024, 16h38; a terceira, do dia 03/03/2024, 06h24min:

Na foto do meio, acima, do dia 29, percebe-se, sinalizado com capins, um vazamento de água. Esse vazamento, no dia 3, ainda não havia sido reparado, como mostra a foto abaixo:

PS 3: No dia 5 de março, à tarde, os buracos haviam sido tampados. As duas fotos abaixo indicam, primeiro o recorte e tamponamento na Esquina dos 4 Buracos, e depois a sobreposição do seu contorno numa das fotos acima. Servindo o tampão do sistema de drenagem (55 cm de diâmetro) como medida de referência, constata-se que a soma das áreas dos 4 buracos perfazem cerca de 0,32 m2, mas o recorte e recobrimento chegam a 1,49 m2, os buracos reais multiplicados por 4,65! Não há justificativa técnica para expandir a área dos buracos, já que seus entornos estavam sólidos e nivelados. A justificativa real é o aumento de faturamento, pela empresa, às custas dos contribuintes.

E como se percebe, o vazamento de água (e criação de novo buraco) já completava 5 dias.

El Niño e El Diablo

outubro 12, 2023

Há já 1 década ou mais alguém descobriu uma correlação entre a temperatura das águas do Oceano Pacífico, num ponto junto à costa do Peru, e a ocorrência de chuvas em excesso no Brasil e outros países. Eram causalidades localizadas, mas logo a tese foi transformada numa panaceia, a explicar tudo. Ora, com a altíssima Cordilheira dos Andes a impedir correntes de ar entre a costa do Pacífico e as terras a leste, El Niño só pode influenciar, no Brasil, o regime de chuvas da região sul, pressionando a zona de alta pressão da Antártida.

Vai-se desenhando a tese de que há duas Ciências: uma para o consumo e utilização pelos concorrentes na disputa amok pelo controle total do planeta, e outra para consumo e desinformação do populacho (o povão e a classe média, mesmo a classe média alta, dita “letrada”).

El niño passou a explicar tudo, transformando-se numa entidade mágica, a livrar os suspeitos habituais das responsabilidades pelos seus crimes. Aqui no Brasil, está servindo para apoiar a destruição ambiental sistemática perpetrada pelo complexo Agro-Boi, onde o Agro vai empurrando o Boi para a Amazônia e transformando os pastos do Centro-Oeste em lavoras exportadoras de soja e milho. E haja queimadas, para por abaixo as florestas e para limpar as áreas já desflorestadas e as pastagens improdutivas. E criticar essa colossal liberação de gás carbônico, aumentando o efeito estufa, tornou-se tabu, para não ferir suscetibilidades ideológicas, onde quem critica é taxado de “comunista”, uma vez que estaria tentando restringir, nos empresários, a liberdade para saquear a Natureza e os povos originários, e destruir o planeta, em nome de lucros imediatos.

Uma outra saída para a expansão do ar quente do El Niño seria a América Central, onde ele poderia influenciar numa primeira etapa o clima da Colômbia e da Venezuela, e apenas numa segunda etapa a Amazônia brasileira. Mas vemos que a seca atual não está atingindo aqueles países, mas apenas o Centro-Oeste e a Amazônia brasileira. O efeito não vem do sul ou do norte, mas da própria região afetada, onde ocorrem, há já alguns anos, portentosas queimadas.  

“História Recente de Campo Grande – MS”

setembro 5, 2021

Iniciei, em 2014, as pesquisas que acabaram resultando no projeto de escrever a História recente de Campo Grande, capital do Estado de Mato Grosso do Sul, a partir de 2003. Dado o grande volume de informações, tornou-se necessário desmembrar a História em diversos volumes, de modo que ela se transformou numa série, e cada volume passou a abranger um biênio.

O primeiro volume, “Campo Grande no Biênio 2003-2004”, foi lançado em 26 de agosto de 2021. Com 240 páginas em formato de 14 cm por 20 cm, cada capítulo tem pelo menos uma ilustração ou foto, na sua abertura. O download das 50 primeiras páginas da  versão em pdf do livro pode ser obtido aqui. Se o leitor quiser obter a versão completa em pdf, ou a versão impressa, em capa dura, deve entrar em contato com o autor, através dos comentários da postagem.

O segundo volume também está quase pronto, faltando apenas obter o ISBN e a Ficha Catalográica.

Macro LibreOffice : Automatizar Impressão (writer)

agosto 27, 2021

Abaixo, um programinha para automatizar a impressão de um documento de texto. Os comandos ImputBox e msgbox são adaptações para algumas peculiaridades da minha impressora ink tank.  A macro básica foi obtida em manual de Andrew Pytoniak.

Sub Main

rem define variáveis
dim document as object
dim sRetorno, Proxima, Proxima2, Proxima3 As String
dim Props(1) As New com.sun.star.beans.PropertyValue

sRetorno = InputBox(“Começa a tarefa pelo primeiro bloco ? Já adequou na impressora a opção direita-esquerda ?”,”tarefa”,”sim”,1440 * 2, 1440 * 4)
If sRetorno = “sim” then
msgbox “A tarefa (primeiro bloco) vai começar”
Else
GoTo Proxima
End If

Props(0).Name = “Pages”
Props(0).Value = “1-16”
ThisComponent.print(Props())
Props(0).Value = “17-32”
ThisComponent.print(Props())
msgbox “Espere a impressora aspirar mais tinta”
Props(0).Value = “33-48”
ThisComponent.print(Props())
Props(0).Value = “49-64”
ThisComponent.print(Props())
Props(0).Value = “65-80”
ThisComponent.print(Props())

Proxima:
sRetorno = InputBox(“Continua a tarefa (segundo bloco) ?”,”tarefa”,”sim”,1440 * 2, 1440 * 4)
If sRetorno = “sim” then
msgbox “A tarefa (segundo bloco) vai continuar”
Else
GoTo Proxima2
End If

Props(0).Name = “Pages”
Props(0).Value = “81-96”
ThisComponent.print(Props())
Props(0).Value = “97-112”
ThisComponent.print(Props())
msgbox “Espere a impressora aspirar mais tinta”
Props(0).Value = “113-128”
ThisComponent.print(Props())
Props(0).Value = “129-144”
ThisComponent.print(Props())
Props(0).Value = “145-160”
ThisComponent.print(Props())

Proxima2:
sRetorno = InputBox(“Continua a tarefa (terceiro bloco) ?”,”tarefa”,”sim”,1440 * 2, 1440 * 4)
If sRetorno = “sim” then
msgbox “A tarefa (terceiro bloco) vai continuar”
Else
GoTo Proxima3
End If

Props(0).Name = “Pages”
Props(0).Value = “161-176”
ThisComponent.print(Props())
Props(0).Value = “177-192”
ThisComponent.print(Props())
msgbox “Espere a impressora aspirar mais tinta”
Props(0).Value = “193-208”
ThisComponent.print(Props())
Props(0).Value = “209-224”
ThisComponent.print(Props())
Props(0).Value = “225-240”
ThisComponent.print(Props())

Proxima3:
msgbox “fim da tarefa”

End Sub

 

Macro LibreOffice : CellRange e setDataArray

abril 6, 2021



Eu tinha uma planilha para completar, com cerca de mil linhas. 180 dessas linhas estavam com 3 das 4 células em branco, à espera da complementação. Havia uma tabela à parte, com os dados que faltavam na tabela maior.

Na foto abaixo aparecem, nas 4 primeiras colunas, o início da tabela a ser completada. Notem os espaços em branco, que ressaltei com molduras em vermelho. Nesses primeiros 6 registros eu devia encaixar, por macro, os dados da tabela à direita, menos, é claro, os nomes (coluna G), que já constavam na tabela maior.

Elaborei uma macro (dentro do Calc LibreOffice) que localizasse, na tabela maior, o primeiro nome da tabela menor. Em seguida, devia a macro copiar o conteúdo das três células à direita do nome e colá-las à direita do mesmo nome constante da tabela incompleta. Era o caso de trabalhar com cópia e colagem, não de células individuais, mas de uma faixa de células (CellRange). Eis a macro:
Sub Main

Dim oDoc As Object
Dim oSheet As Object
Dim Cell As Object
Dim iCol, iCol2 As Integer
Dim iLin, iLin2 As Integer
Dim oRange1(6 to 8 , 2), oRange2(1 to 3 , 2)
Dim nome1, nome2 As String

oDoc = ThisComponent
oSheet = oDoc.Sheets(0)

iCol = 6
iLin = 2
iCol2 = 1
iLin2 = 2
nome1 = “A”
nome2 = “B”

While iLin < 8 and nome2 <> “” and nome1 <> “”

ReDim oRange1(1 to 3 , iLin), oRange2(6 to 8 , iLin)

oCell = oSheet.getCellByPosition(iCol,iLin)
nome1 = oCell.String
oCell = oSheet.getCellByPosition(iCol2, iLin2)
nome2 = oCell.String

If nome1 = nome2 Then

oRange1 = oSheet.getCellRangeByPosition(7,iLin,9,iLin)
oRange2 = oSheet.getCellRangeByPosition(2,iLin2,4,iLin2)
oRange2.setDataArray(oRange1.getDataArray())

iLin = iLin + 1

End If

iLin2 = iLin2 + 1

Wend

End Sub

Esta versão da macro está adaptada ao tamanho reduzido aqui exposto, isto é, só trabalha até transpor os dados do sexto nome da tabela menor.
Importante notar que na declaração das variáveis oRange1 e oRange2, é preciso especificar o conjunto de células de cada uma. No caso, ambas têm 3 colunas e 1 linha. Dim oRange1(1 to 3, 2) e Dim oRange2(6 to 8, 2) indicam as primeiras posições das duas faixas. Não esquecer que a contagem das linhas e colunas começa com zero (0) e não com 1.

ReDim é necessário para que os parâmetros (célula inicial e célula final das faixas) possam mudar de acordo com as exigências do programa. Assim, quando o programa chegar ao segundo nome da tabela menor (ADILSON), teremos oRange1(6 to 8, 3), mudança da linha.
Rodada a macro, a página ficará assim:

Estive consultando o Basic Development Guide, e lá constatei que existe uma outra maneira de obter o resultado acima, só que apagando os dados copiados para a tabela inicialmente incompleta. Adaptei a macro acima, ficando ela assim:

Sub Main
Dim Doc As Object
Dim Cell, Sheet As Object
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
Dim CellAddress As New com.sun.star.table.CellAddress
Dim iLin, iLin2, contador As Integer
Dim nome1, nome2 As String

Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
iLin = 2
iLin2 = 2
contador = 0
nome1 = “A”
nome2 = “B”

While contador < 27

Cell = Sheet.getCellByPosition(6,iLin)
nome1 = Cell.String
Cell = Sheet.getCellByPosition(1,iLin2)
nome2 = Cell.String
msgbox nome1 & nome2

If nome1 = nome2 Then

CellRangeAddress.Sheet = 0
CellRangeAddress.StartColumn = 7
CellRangeAddress.StartRow = iLin
CellRangeAddress.EndColumn = 9
CellRangeAddress.EndRow = iLin

CellAddress.Sheet = 0
CellAddress.Column = 2
CellAddress.Row = iLin2

Sheet.moveRange(CellAddress, CellRangeAddress)

iLin = iLin + 1
iLin2 = iLin2 + 1
Else
iLin2 = iLin2 + 1
End If
contador = contador + 1
Wend

End Sub

Com essa macro, aquela página inicial ficará assim:

MacroRange3