Архив автора: admin

WebApp Manager и Nativefier: приложения для создания веб-приложений

WebApp Manager и Nativefier: приложения для создания веб-приложений

WebApp Manager и Nativefier: приложения для создания веб-приложений

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

Однако в нем мы упоминаем, что более простой и конкретной альтернативой является использование «Менеджер веб-приложений и Nativefier», поэтому вам не нужно вручную создавать ярлык, который работает как веб-приложение. И именно поэтому сегодня мы поговорим об этих 2 разработки программного обеспечения углубиться в его использование и полезность.



Читать

Python 3. Словари

В этой статье я разбираю Словари в Python 3. Вы узнаете, какими свойствами обладают словари и как можно с ними работать.











Свойства словарей




Я уже писал про последовательности и множества в Python 3. Словарь — наиболее гибкий тип данных в Python. Если списки и кортежи мож­но рассматривать как упорядоченные коллекции объектов, то слова­ри — неупорядоченные коллекции. То есть элементы словаря не индексируются и обратиться к ним по индексу не получится.




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




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(my_dict['name'])

### Исполнение
Alex




Чем-то напоминает json.




Основные свойства словарей:




  • так как словарь не является последовательностью, то некоторые операции не поддерживаются:

    • обращение по индексу и срезы;



    • конкатенация и повторение;




  • словарь это изменяемый объект, то есть добавлять, изменять и удалять элементы словаря можно;



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




С помощью функции len(), можем узнать количество элементов в словаре:




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985'}
print(len(my_dict))

### Исполнение
2




Работа со словарями в Python




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




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(my_dict['ip'])

### Исполнение
Traceback (most recent call last):
  File "test2.py", line 2, in <module>
    print(my_dict['ip'])
          ~~~~~~~^^^^^^
KeyError: 'ip'




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




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(my_dict.get('ip'))
print(my_dict.get('name'))

### Исполнение
None
Alex




Метод get позволяет указать значение по умолчанию, оно будет выводиться вместо None, если ключ отсутствует:




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(my_dict.get('ip', 'Нет такого ключа'))

### Исполнение
Нет такого ключа




Можно вывести все ключи с помощью метода keys(), или все значения с помощью метода values(). Или можно вывести кортежи в виде пар «ключ : значение», с помощью метода items():




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(my_dict.keys())
print(my_dict.values())
print(my_dict.items())

### Исполнение
dict_keys(['name', 'date'])
dict_values(['Alex', '12.05.1985'])
dict_items([('name', 'Alex'), ('date', '12.05.1985')])




Преобразуя вывод items() в список, получим список кортежей:




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(list(my_dict.items()))

### Исполнение
[('name', 'Alex'), ('date', '12.05.1985')]




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




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
print(list(my_dict.items())[0])
print(list(my_dict.items())[0][1])

### Исполнение
('name', 'Alex')
Alex




Добавить элемент в словарь можно таким способом:




### Код
my_dict = {'name' : 'Alex', 'date' : '12.05.1985'}
my_dict['position'] = 'IT engineer'
print(my_dict)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}




Удалить элемент из словаря можно с помощью метода pop():




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}
my_dict.pop('position')
print(my_dict)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985'}




А чтобы не возникла ошибка, если удаляемого ключа нет в словаре, можно методу pop() задать дополнительный параметр:




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}
my_dict.pop('ip')
print(my_dict)

### Исполнение
Traceback (most recent call last):
  File "test2.py", line 2, in <module>
    my_dict.pop('ip')
KeyError: 'ip'

### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}
my_dict.pop('ip', None)
print(my_dict)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}

### Код 
# Введённый мною элемент (None), будет выведен в консоль, если мы используем функцию print())
# Вместо None можно было задать любой другой объект, например строку
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}
print(my_dict.pop('ip', None))

### Исполнение
None




Так как словарь это изменяемый объект, нужно быть аккуратным с присвоением двум переменным одного словаря:




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985'}
my_dict2 = my_dict
my_dict2['position'] = 'IT engineer'
print(my_dict)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}




Чтобы этого избежать, словарь можно копировать с помощью метода copy():




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985'}
my_dict2 = my_dict.copy()
my_dict2['position'] = 'IT engineer'
print(my_dict)
print(my_dict2)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985'}
{'name': 'Alex', 'date': '12.05.1985', 'position': 'IT engineer'}




А если у нас в словаре содержится ещё один словарь, то простым копированием не отделаться:




### Код
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'network' : {'ip' : '192.168.0.12', 'gateway' : '192.168.0.1'} }
my_dict2 = my_dict.copy()
my_dict2['network']['ip'] = '192.168.0.13'
print(my_dict)
print(my_dict2)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985', 'network': {'ip': '192.168.0.13', 'gateway': '192.168.0.1'}}
{'name': 'Alex', 'date': '12.05.1985', 'network': {'ip': '192.168.0.13', 'gateway': '192.168.0.1'}}




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




Чтобы этого избежать, существует глубокое копирование. Это метод deepcopy() модуля copy:




### Код
import copy
my_dict = {'name': 'Alex', 'date': '12.05.1985', 'network' : {'ip' : '192.168.0.12', 'gateway' : '192.168.0.1'} }
my_dict2 = copy.deepcopy(my_dict)
my_dict2['network']['ip'] = '192.168.0.13'
print(my_dict)
print(my_dict2)

### Исполнение
{'name': 'Alex', 'date': '12.05.1985', 'network': {'ip': '192.168.0.12', 'gateway': '192.168.0.1'}}
{'name': 'Alex', 'date': '12.05.1985', 'network': {'ip': '192.168.0.13', 'gateway': '192.168.0.1'}}









Итог




Словари — достаточно интересный тип данных в Python. Словарь может содержать вложенные словари или списки и допускает большую вложенность. Объект типа «Словарь» изменяемый, поэтому этот объект можно изменять — добавляя, изменяя или удаляя элементы. Некоторые особенности словарей можете посмотреть здесь.



2023-03-10T15:30:55
Python

ChromeOS 111 уже выпущена и поставляется с Fast Pair и другими функциями.

ChromeOS

ChromeOS — это операционная система на базе Linux, разработанная Google. Это производная от проекта с открытым исходным кодом Chromium OS и использует веб-браузер Google Chrome в качестве пользовательского интерфейса.

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

Тем, кто не знаком с Chrome OS, следует знать, что система основана на ядре Linux, инструментах сборки ebuild / portage, открытых компонентах и ​​веб-браузере Chrome 111.



Читать

Python 3. Кортежи

В этой статье я разбираю Кортежи в Python 3. Вы узнаете, какими свойствами обладают кортежи и как можно с ними работать.





Читать

Процесс дубления кожи

Выделка кожи и обработка кожи — одни из древнейших профессий, известных человеку, но приобретение кожи не всегда было таким простым, как переход к https://www.mleather.ru/ и доставить его к вашему порогу через несколько дней. В старые времена дубление кожи требовало непосильной работы и большого терпения, потому что процесс от начала до конца занимал до 18 месяцев. Пойдем со мной, когда мы вернемся назад во времени и узнаем о дублении кожи в прошлые годы.

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

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

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

С технологией, которой мы располагаем сегодня, мы можем дубить кожу намного быстрее и эффективнее, чем это было возможно тысячелетие назад, но терпение все еще применимо. Для растительного дубления кожи требуется 30-45 дней. Шкуры должны пройти шестиступенчатый процесс консервации, повторного увлажнения, удаления волос, дубления, сушки и прессования в рулонах. Для достижения одинакового качества каждого вида кожи кожевенные заводы, с которыми мы работаем, проверяют и перепроверяют решения и процессы дубления, чтобы убедиться в их точности и точности. Это хороший пример активного ожидания. Если это не будет выполнено, это приведет к проблемам в конце процесса, когда кожа будет не того цвета или качества, которые предполагались. Не забудьте узнать больше о кожевенном производстве на заводе MLeather — белорусская кожа на заказ. На рынке с 2017 года!.



2023-03-10T08:34:56
Бизнес

Station, WebCatalog, Rambox и Franz: каков их текущий статус?

Station, WebCatalog, Rambox и Franz: каков их текущий статус?

Station, WebCatalog, Rambox и Franz: каков их текущий статус?

В течение 2023 года в результате развития технологий Искусственный интеллект и использование ChatGPTЯ пробовал бесчисленное количество приложений. Как настольные (локальные клиенты), так и онлайн (веб-платформы). Из которых мне очень понравилось, до сих пор, Кречет (плагин для веб-браузера) и переводить (веб-сервис ChatBot AI с онлайн-переводом).

Однако в поисках лучших веб-решений, как для установки, так и для использования этих платформ в GNU/Linux, я вспомнил, что существуют такие приложения, как Станция, Веб-каталог, Рэмбокс и Франц, которые очень хорошо управляют WebApps. Поэтому сегодня я представляю вам эту полезную и информативную публикацию о статусе каждого из этих приложений. О чем, кстати, мы уже упоминали и говорили ранее.



Читать