Архив рубрики: Из жизни

Сюда тащатся заметки из ЖЖшки

Подключение ws2812B-16 к Raspberry PI 3

Схема подключения:

Установим необходимые библиотеки:

pip3 install rpi_ws281x adafruit-circuitpython-neopixel

Помигаем светодиодами:

import board
import neopixel
import time
import random
pixels = neopixel.NeoPixel(board.D18, 17)
time.sleep(5)
for n in range(16):
    pixels[n] = (255, 0, 0)
    time.sleep(0.1)
    pixels[n] = (255, 255, 0)
    time.sleep(0.1)
    pixels[n] = (255, 255, 255)
for n in range(16):
    pixels[n] = (0, 0, 0)
for n in range(10000):
    to=random.randint(0,16)
    pixels[to]=(random.randint(1,55), random.randint(1,55), random.randint(1,55))
    to=random.randint(0,16)
    pixels[to]=(0,0,0)

 

Как-то не заладилось у меня с cloudlite.ru

Хотел в новогодние каникулы перенести сайт на другую виртуалку, помощнее, поновее. И не заладилось что-то с самого начала..

Зарегистрировался на cloudlite.ru, выбрал тариф, внес средства..и…ОЙ, оказывается виртуалку нельзя запустить пока не активировал аккаунт по email. Хотя телефон привязан, и код введен. Пытаюсь отправить из панели письмо с повторной активацией — и ничего не приходит. Написал в техподдержку — и никто не отвечет. Хотел зайти в сообщество во VK — а там пишут, что «Возможно, сообщество было захвачено недоброжелателями. Мы заблокировали его, чтобы вернуть настоящим хозяевам.».

Эх Вася..Вася.. Ну ладно, подождем будни, может ответят. Но звоночек уже прозвучал..

Почта РФ сливает телефоны оформленых посылок

Ну вот и Почта РФ скатилась. Раньше только СДЭК этим занимался. Отправили вчера посылку с Тольяти почтой РФ. Телефон указал свой, ФИО — отца. 

Седня уже звонят сволочи какието с Московского телефона, называя меня отцовским именем, предлагают кредит

Быстрая обработка файла эксель средствами 1С

С недавних пор (относительно) 1С умеет загружать файлы эксель в табличный документ. Причём листы раскидывает на области.  Обработка идет на удивление быстро, по сравнению со «старым» способом, через COM соединение с Excel.

Вот пример обработки файла:

1.Выбираем файл на «клиенте» и передаем его на «сервер»:

&НаКлиенте
Процедура ЗагрузкаПрайса(Команда)
		Режим = РежимДиалогаВыбораФайла.Открытие;
	    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	    ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	    Фильтр = НСтр("ru = 'Текст'; en = 'Text'")+ "(*.xlsx)|*.xlsx";
	    ДиалогОткрытияФайла.Фильтр = Фильтр;
	    ДиалогОткрытияФайла.МножественныйВыбор = Истина;
	    ДиалогОткрытияФайла.Заголовок = "Выберите файл(ы)";
	    Если ДиалогОткрытияФайла.Выбрать() Тогда
	        МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
	        Для Каждого ИмяФайла Из МассивФайлов Цикл
	            ВыбФайл = Новый Файл(ИмяФайла);
	            Сообщить(ИмяФайла+ НСтр("ru = '; Размер = '; en = '; Size = '")+ ВыбФайл.Размер());			
				АдресВременногоХранилища = "";
     			ПоместитьФайл(АдресВременногоХранилища, ИмяФайла, , Ложь, ЭтаФорма.УникальныйИдентификатор);   
				ЗагрузкаПрайсаНаСервере(АдресВременногоХранилища);
			 конеццикла;
		конецесли;	   					
	
КонецПроцедуры

2. Обрабатываем файл на «Сервере»:

&НаСервере
Процедура ЗагрузкаПрайсаНаСервере(АдресВременногоХранилища)
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
	ДвоичныеДанные.Записать(ИмяВременногоФайла);

	сообщить(ИмяВременногоФайла);
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ИмяВременногоФайла,СпособЧтенияЗначенийТабличногоДокумента.Значение);

	//листаем все листы
	Для Каждого ОбластьТД ИЗ ТабличныйДокумент.Области Цикл			
			ОбластьФайла = ТабличныйДокумент.ПолучитьОбласть(ОбластьТД.Имя);
			КолВоСтрокФайла = ОбластьФайла.ПолучитьРазмерОбластиДанныхПоВертикали();
			КолВоКолонокФайла = ОбластьФайла.ПолучитьРазмерОбластиДанныхПоГоризонтали();
			Сообщить("Строк:"+КолВоСтрокФайла);
			Сообщить("Колонок:"+КолВоКолонокФайла);			
			имялиста=ОбластьТД.Имя;
			Сообщить("Лист:"+имялиста);			
					МассивИменКолонок=Новый Массив();
					// читаем шапку листа
					Для ит=1 ПО КолВоКолонокФайла Цикл
						нКолонка = СтрЗаменить(ит, Символы.НПП, "");
						ИмяКолонки=ОбластьФайла.ПолучитьОбласть("R1" + "C"+нКолонка).ТекущаяОбласть.Текст;
						сообщить("- колонка: "+ИмяКолонки);
						МассивИменКолонок.Добавить(ИмяКолонки);
					конеццикла;	
					НачСтрока=0;КонСтрока=0;
					НачСтрока = ?(НачСтрока = 0, 2, НачСтрока);
					КонСтрока = ?(КонСтрока = 0, КолвоСтрокФайла, КонСтрока);
					//перебираем все строки без первой строки			
					Для нСтрокаТФ = НачСтрока ПО КонСтрока Цикл
						нСтрока = СтрЗаменить(нСтрокаТФ, Символы.НПП, "");
						СодержимоеСтроки=Новый Массив();
						Для нКолонкаТФ = 1 ПО КолВоКолонокФайла Цикл
							нКолонка = СтрЗаменить(нКолонкаТФ, Символы.НПП, "");
							Область = ОбластьФайла.ПолучитьОбласть("R"+нСтрока+"C"+нКолонка);
							ТекущаяОбласть = Область.ТекущаяОбласть;
							ЗначениеЯчейки = СокрЛП(ТекущаяОбласть.Текст);
							СодержимоеСтроки.Добавить(ЗначениеЯчейки);					
						конеццикла;			
						// ОбработатьСписокЗначений в "СодержимоеСтроки"
					конеццикла;							
	конеццикла;			
КонецПроцедуры

Откуда мы пошли..

Фамилия Грибов восходит к нарицательному «гриб», которое в старину имело значение «губы». Слово «гриб» могло быть связанои с диалектным глаголом «грибиться» в любом из двух значений: 1) “морщиниться, хмуриться, дуться, сердиться”; 2) “гримасничать, корчить рожи”. Скорее всего, «Грибом» называли угрюмого недовольного человека или, напротив, балагура