пайнбука
pinebook с 64 битным gentoo/wmaker и 32 битным ARM Linux Oberon.
вообще набор комманд aarch64 не имеет ничего общего с наборами инструкций 32 битных ARM, но процессор пайнбука может выполнять оба набора.
pinebook с 64 битным gentoo/wmaker и 32 битным ARM Linux Oberon.
вообще набор комманд aarch64 не имеет ничего общего с наборами инструкций 32 битных ARM, но процессор пайнбука может выполнять оба набора.
24 марта, в своём блоге компания Mozilla предложила пользователям Firefox стать участниками тестирования сервиса «Firefox Better Web with Scroll», который нацелен на новую модель финансирования сайтов.
Цель проекта — возможность использования платной подписки для финансирования создания контента. Это должно позволить владельцам сайтов обойтись без рекламы. Сервис организован совместно с проектом Scroll.
Модель выглядит примерно так: пользователь оплачивает подписку на сервис и может просматривать сайты, присоединившиеся к Scroll, без рекламы. Около 70% от полученных средств перечисляется владельцам сайтов (что на 40% превышает их обычный доход от рекламы).
В настоящее время тестирование доступно только для пользователей из США. Чтобы стать участником программы, необходима установка специального расширения в браузер.
>>> Подробности
Доехал до меня неделю назад Pinephone Braveheart edition.
Как и следовало ожидать, все существующие прошивки очень сырые. Наиболее отзывчивый интерфейс у ubuntu phone, но не могу сказать что удобный. В LuneOS интерфейс вроде поудобнее, но там не получилось подключиться к wifi с авторизацией.
Камера не заработала из коробки нигде.
То, что печалит больше всего, - энергоэффективность. Ubuntu phone во включенном состоянии (с выключенным экраном, без sim-карты) на полностью заряженном аккумуляторе, садится меньше чем за ночь. Остальные прошивки, думаю, так же.
В целом кажется, что пользоваться им как телефоном в ближайшее время не получится. Пока не придумал, как буду его использовать.
cast eR
Если кому-то интересно, могу дать в Москве на время поиграться и/или зайти с ним на встречу МЛУГа (DR_SL,
Goury, они сейчас проводятся?)
2-го марта вышла в свет пятая версия дистрибутива Porteus Kiosk 5.0.0, основанного на Gentoo Linux, и предназначенного для быстрого развертывания демонстрационных стендов и терминалов самообслуживания. Размер образа составляет всего 104 мб.
Дистрибутив включает в себя минимальное окружение, необходимое для запуска веб-браузера (Mozilla Firefox или Google Chrome) с урезанными правами — запрещены изменения настроек, установка дополнений или приложений, закрыт доступ к страницам, не попадающим в белый список. Также имеется предустановленный ThinClient для работы терминала в роли тонкого клиента.
Настройка дистрибутива осуществляется с помощью совмещенного с установщиком специального мастера настройки — KIOSK WIZARD.
После загрузки ОС проводит верификацию всех компонентов по контрольным суммам, а монтируется система в состоянии только чтения.
Основные изменения:
>>> Подробности
Привет всем. Правильная установка MicroG - это то, с чем у меня некоторое время были проблемы; в основном потому что (1) Я не смог найти надежный способ включить подделку подписи (2) потому что я не смог найти установщик, который сделал то, что я хотел. Это означало, что мне пришлось придерживаться устройств, официально поддерживаемых LineageOS, и установить сборку Lineage for MicroG - что не идеально, поскольку существует множество устройств со стабильными неофициальными ПЗУ.
Вчера мне удалось получить совершенно функциональную установку на Galaxy S6 - вот как. Обратите внимание, что это руководство может очень хорошо работать для любого другого устройства, нет никаких оснований ограничивать его S6.
Что такое microG?
Проект microG является «клоном свободного программного обеспечения собственных библиотек и приложений Google». Более конкретно, это поле FLOSS (бесплатное / бесплатное программное обеспечение с открытым исходным кодом), которое позволяет приложениям, разработанным для служб Google Play, работать в системах, где службы Play недоступны. Он предоставляет все необходимые API-интерфейсы, предоставляемые сервисами Google Play, чтобы приложения, работающие с ним, могли нормально работать.
Как установить MicroG
Установка MicroG не так проста, потому что она должна стать частью системы, будет гораздо проще использовать ПЗУ, на котором она уже установлена. После успешной установки и внедрения каждый может использовать microG и поддерживать его в актуальном состоянии.
Шаг 01 - Перейдите в Настройки> Настройки Emteria и затем включите «Подмена подписи».
Шаг 02 - Откройте F-Droid и добавьте хранилище microG microgdownload.com для загрузки файлов, связанных с microG.
Шаг 03 - следуйте инструкциям по установке на странице загрузки
Вот и все. Кажется, все работает, и все проверено в приложении настроек MicroG.
Надеюсь, что это окажется полезным!
12 февраля состоялся релиз системы децентрализованного видеовещания PeerTube 2.1
, развиваемой как альтернатива централизованным платформам (таким как YouTube, Vimeo), работающая по принципу «peer-to-peer» — контент хранится непосредственно на машинах пользователей. Исходный код проекта разрабатывается на условиях лицензии AGPLv3
.
( читать дальше... )
В настоящее время в федеративной сети видеовещания PeerTube насчитываются около 300
серверов, основанных и поддерживаемых добровольцами.
>>>
Обсуждение на HN
>>> Подробности
Как заюзать ProtonVPN только для браузерного трафика? Думаю о создании и запуске docker-контейнера, в котором будет openvpn и socks5-прокси, адрес этого прокси пропишу в настройках браузера.
Реально ли такое? И можно ли как-то проще?
Библиотека libmdbx является существенно переработанным потомком LMDB — предельно высокопроизводительной, компактной встраиваемой базой данных класса ключ-значение. Текущая версия v0.5 является техническим релизом, отмечает завершение каких-либо доработок и переход к фазе публичного финального тестирования и стабилизации, с последующем формированием первого полноценного релиза библиотеки.
LMDB является достаточно известной транзакционной встраиваемой СУБД класса «ключ-значение» на основе дерева B+ без упреждающей журнализации, которая позволяет рою многопоточных процессов конкурентно и предельно эффективно работать с локально-разделяемой (не сетевой) БД. В свою очередь MDBX быстрее и надежнее LMDB, при этом libmdbx сохраняет все ключевые возможности своего прародителя, такие как ACID и неблокирующее чтение с линейным масштабированием по ядрам CPU, а также добавляет несколько новых.
Описание отличий и усовершенствований libmdbx относительно LMDB заслуживает отдельной статьи (планируется публикации на «Хабре» и «Medium»). Здесь же уместно упомянуть самые важные и заметные:
( читать дальше... )
Имеющиеся дистрибутивы на оф.сайте Orange Pi плохо поддерживаются и практически не обновляются.
Orange Pi Zero (https://linux-sunxi.org/Xunlong_Orange_Pi_Zero), SoC Allwiner H2+ 1 ГГц, ОЗУ 256 Мб
Собрал загрузчик из последней ревизии главной ветки проекта u-boot
git clone --depth 1 --single-branch --branch master https://github.com/u-boot/u-boot.git
В целях отладки перед сборкой установил в .config
параметр CONFIG_LOGLEVEL=8
(вместо стандартного 4).
Получил на выходе:
u-boot-sunxi-with-spl.bin
– загрузчик
sun8i-h2-plus-orangepi-zero.dtb
– древовидное описание устройства
Собрал ядро Linux версии 4.15 (с этой версией, согласно Википедии, работает LTS дистрибутив Ubuntu 18.04).
Получил на выходе:
uImage
– образ ядра
Составил boot.cmd следующего содержания:
echo BOOT.SCR BEGIN
#setenv machid 1029
setenv bootargs console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 init=/sbin/init rootwait rootfstype=ext4 panic=10 consoleblank=0 enforcing=0 loglevel=7
load mmc 0 0x42000000 uImage
load mmc 0 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
bootm 0x42000000 - 0x43000000
Преобразовал это в boot.scr
mkimage -C none -A arm -T script -d boot.cmd boot.scr
Записал на флешку с помощью dd u-boot-sunxi-with-spl.bin
На первый раздел с «загрузочным» флагом скопировал файлы: uImage
, sun8i-h2-plus-orangepi-zero.dtb
, boot.cmd
Первая загрузка. Вывод консоли контролирую через последовательный порт.
U-Boot SPL 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300)
DRAM: 256 MiB
Trying to boot from MMC1
U-Boot 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300) Allwinner Technology
CPU: Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM: 256 MiB
MMC: mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: phy interface0
eth0: ethernet@1c30000
starting USB...
Bus usb@1c1a000: USB EHCI 1.00
Bus usb@1c1a400: USB OHCI 1.0
Bus usb@1c1b000: USB EHCI 1.00
Bus usb@1c1b400: USB OHCI 1.0
scanning bus usb@1c1a000 for devices... 1 USB Device(s) found
scanning bus usb@1c1a400 for devices... 1 USB Device(s) found
scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
scanning bus usb@1c1b400 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
395 bytes read in 4 ms (95.7 KiB/s)
## Executing script at 43100000
BOOT.SCR BEGIN
Wrong Image Format for bootm command
ERROR: can't get kernel image!
SCRIPT FAILED: continuing...
15297 bytes read in 8 ms (1.8 MiB/s)
Device 0: unknown device
_sun8i_emac_eth_init: Timeout
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-02-42-c1-50-2c-d1
ethernet@1c30000 Waiting for PHY auto negotiation to complete......... TIMEOUT !
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
Провал!
Почему-то команды из boot.scr на копирование файлов в память устройства fatload
игнорируются, но echo
и bootm
выполняются.
После неудачной загрузки получаю управлению в консоли и пробую проверить память по адресу, куда должно было загрузиться ядро. потом вручную загружаю ядро и снова читаю контрольную сумму.
=> crc32 0x42000000 0x3a1570
crc32 0x42000000 0x3a1570
crc32 for 42000000 ... 423a156f ==> aa7c90eb
=> fatload mmc 0 0x42000000 uImage
fatload mmc 0 0x42000000 uImage
3806576 bytes read in 198 ms (18.3 MiB/s)
=> crc32 0x42000000 0x3a1570
crc32 0x42000000 0x3a1570
crc32 for 42000000 ... 423a156f ==> dccd4918
dccd4918 – это правильная контрольная сумма. Т.е. загрузка в память из boot.scr действительно не выполнялась, а вручную файл в память загружается нормально.
Если в самом начале загрузки перехватить управление в u-boot и проверить доступ к SD-карте – всё ОК, доступ есть (да и boot.scr u-boot без проблем берет с карты).
=> fatls mmc 0
fatls mmc 0
15297 sun8i-h2-plus-orangepi-zero.dtb
3806576 uImage
395 boot.scr
3 file(s), 0 dir(s)
Пробую ручную загрузку - ядро загружается и происходит нормальный старт!!!
U-Boot SPL 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300)
DRAM: 256 MiB
Trying to boot from MMC1
U-Boot 2020.01-rc3 (Nov 19 2019 - 19:19:59 +0300) Allwinner Technology
CPU: Allwinner H3 (SUN8I 1680)
Model: Xunlong Orange Pi Zero
DRAM: 256 MiB
MMC: mmc@1c0f000: 0, mmc@1c10000: 1
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: phy interface0
eth0: ethernet@1c30000
starting USB...
Bus usb@1c1a000: USB EHCI 1.00
Bus usb@1c1a400: USB OHCI 1.0
Bus usb@1c1b000: USB EHCI 1.00
Bus usb@1c1b400: USB OHCI 1.0
scanning bus usb@1c1a000 for devices... 1 USB Device(s) found
scanning bus usb@1c1a400 for devices... 1 USB Device(s) found
scanning bus usb@1c1b000 for devices... 1 USB Device(s) found
scanning bus usb@1c1b400 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
Hit any key to stop autoboot: 2
0
=> fatload mmc 0 0x42000000 uImage
fatload mmc 0 0x42000000 uImage
3806576 bytes read in 198 ms (18.3 MiB/s)
=> fatload mmc 0 x 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
fatload mmc 0 0x43000000 sun8i-h2-plus-orangepi-zero.dtb
15297 bytes read in 7 ms (2.1 MiB/s)
=> bootm 0x42000000 - 0x43000000
bootm 0x42000000 - 0x43000000
## Booting kernel from Legacy Image at 42000000 ...
Image Name: Linux-4.15.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3806512 Bytes = 3.6 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
Booting using the fdt blob at 0x43000000
EHCI failed to shut down host controller.
Loading Kernel Image
Loading Device Tree to 49ff9000, end 49fffbc0 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.15.0 (slarti@RUMP) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #2 SMP Tue Nov 19 21:05:53 MSK 2019
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Xunlong Orange Pi Zero
...
[ 2.166572] [<c0150380>] (cpu_startup_entry) from [<401017ac>] (0x401017ac)
[ 2.173537] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Учитывая отсутствие второго раздела на SD-карте, ловлю Kernel Panic - это нормально.
Пробовал в boot.cmd менять fatload
на load
– безрезультатно, пробовал указывать вместо «mmc 0» адрес с разделом «mmc 0:1» – безрезультатно.
printenv
ниже:
arch=arm
baudrate=115200
board=sunxi
board_name=sunxi
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootarm.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_net_usb_start=usb start
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=fel mmc0 usb0 pxe dhcp
bootargs=console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 init=/sbin/init rootwait rootfstype=ext4 panic=10 consoleblank=0 enforcing=0 loglevel=7
bootcmd=run distro_bootcmd
bootcmd_dhcp=run boot_net_usb_start; if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00010:UNDI:003000;setenv bootp_arch 0xa;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_fel=if test -n ${fel_booted} && test -n ${fel_scriptaddr}; then echo '(FEL boot)'; source ${fel_scriptaddr}; fi
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi
bootcmd_usb0=devnum=0; run usb_boot
bootdelay=2
bootfstype=fat
bootm_size=0xa000000
console=ttyS0,115200
cpu=armv7
dfu_alt_info_ram=kernel ram 0x42000000 0x1000000;fdt ram 0x43000000 0x100000;ramdisk ram 0x43300000 0x4000000
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
eth1addr=12:42:c1:50:2c:d1
ethact=ethernet@1c30000
ethaddr=02:42:c1:50:2c:d1
fdt_addr_r=0x43000000
fdtcontroladdr=4bf59080
fdtfile=sun8i-h2-plus-orangepi-zero.dtb
fileaddr=43000000
filesize=3bc1
kernel_addr_r=0x42000000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
mmc_bootdev=0
partitions=name=loader1,start=8k,size=32k,uuid=${uuid_gpt_loader1};name=loader2,size=984k,uuid=${uuid_gpt_loader2};name=esp,size=128M,bootable,uuid=${uuid_gpt_esp};name=system,size=-,uuid=${uuid_gpt_system};
preboot=usb start
pxefile_addr_r=0x43200000
ramdisk_addr_r=0x43300000
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; if test -z "${fdtfile}" -a -n "${soc}"; then setenv efi_fdtfile ${soc}-${board}${boardver}.dtb; fi; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootarm.efi; then echo Found EFI removable media binary efi/boot/bootarm.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
scriptaddr=0x43100000
serial#=02c00042c1502cd1
soc=sunxi
stderr=serial
stdin=serial,usbkbd
stdout=serial
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
uuid_gpt_esp=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
uuid_gpt_system=69dad710-2ce4-4e3c-b16c-21a1d49abed3
Environment size: 4665/131068 bytes
echo
и bootm
выполняются исправно.Сообщество Pine64, недавно анонсировавшее производство свободного смартфона PinePhone, представляет свой новый проект — смарт-часы PineTime.
Основные возможности часов:
Предполагаемая цена — всего 25$.
В качестве основной операционной системы предлагается использовать «ОС реального времени» с открытыми исходниками - FreeRTOS. Так же в планах адаптировать ARM MBED. Но сообщество получит возможность адаптировать и другие известные системы для смарт-часов.
По словам Pine64: «Мы позволим сообществу и разработчикам развивать проект в нужном направлении».
>>> Подробности
19 сентября 2019 года состоялся релиз сервера приложений NGINX Unit 1.11.0.
Основные особенности:
( читать дальше... )
>>> Подробности
Интересует мнение людей, которые выбрали slackware в качестве основного дистрибутива дома/на работе/на сервере. Почему сделали такой выбор? Интересуюсь в первую очередь потому, что есть желание себе поставить на десктоп. Для меня пока не понятно, как слакваристы организовывают установку нужного софта на всех компах со всеми зависимостями и как организовывают обновление с пересборкой сразу везде (локальный репозиторий?). В общем, слакваристы, делитесь впечатлениями. Интересует _только_ стабильная ветка. Судя по всему для работы с моим железом придется обновлять ядро до 4.18+.
Хейтеров и ненужнистов просьба держаться от топика подальше. Не разводите срач. Заранее спасибо.
ЛОР, посоветуй работающий прокси-сервер для телеграмма (адрес). Использую telegram-desktop-1.8.1, без прокси - не коннектит.
Может быть кто-то запилил себе проксю на VPS и готов поделиться полосой?
Также прошу описать угрозы при работе через недоверенный прокси.
Компания Purism опубликовала полную спецификацию Librem 5.
Основное железо и характеристики:
Возможны 2 варианта модемов сотовой связи:
Особенностью телефона являются 3 физических выключателя:
Wi-Fi + Bluetooth, сотовая связь, камера + микрофон. Если три выключателя в положении «выключено», то выключается GPS.
Софт представлен полностью открытым Linux-дистрибутивом PureOS c двумя оболочками: GNOME и Plasma Mobile. Заявлена пожизненная поддержка ОС (Lifetime updates).
Загрузчик не заблокирован - возможна установка любого стороннего дистрибутива Linux или другой ОС.
Продажа устройства будет объявлена в 3 квартале 2019 года.
>>> Подробности
Помогите понять почему не работает expires max в nginx. Есть связка nginx+php-fpm+memcache, но почему то не работает кэширование. developers.google.com говорит, что статика не кешируется.
Сам конфиг nginx:
server {
listen 80;
listen [::]:80;
server_name .example.com;
# return 301 https://example.com$request_uri;
}
server {
fastcgi_pass_header Last-Modified;
gzip on;
gzip_comp_level 3;
gzip_types application/x-javascript application/javascript text/css;
pagespeed on;
pagespeed RewriteLevel OptimizeForBandwidth;
pagespeed FileCachePath /var/ngx_pagespeed_cache;
pagespeed LoadFromFile "https://example.com" "/home/www/example.com/www/";
pagespeed FetchHttps enable;
pagespeed EnableFilters collapse_whitespace,rewrite_css,rewrite_js,combine_css,combine_javascript,prioritize_critical_css,insert_dns_prefetch;
pagespeed DisableFilters convert_to_webp_animated,convert_jpeg_to_webp,convert_to_webp_lossless,recompress_webp;
pagespeed EnableFilters in_place_optimize_for_browser;
pagespeed InPlaceResourceOptimization on;
pagespeed EnableFilters extend_cache;
pagespeed EnableCachePurge on;
pagespeed ImplicitCacheTtlMs 1209600000;
pagespeed ImagePreserveURLs on;
keepalive_timeout 70;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;
ssl_prefer_server_ciphers on;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
listen 443 ssl http2;
server_name .example.com;
charset off;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
set $root_path /home/www/example.com/www;
root $root_path;
set $php_sock unix:/var/run/php-fpm/php-fpm.sock;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 1024M;
client_body_buffer_size 10M;
client_body_timeout 60;
send_timeout 60;
index index.php;
autoindex off;
error_page 404 /404.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /bitrix/urlrewrite.php last;
}
location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" {
expires 7d;
}
if ($host = 'www0.example.com') {
return 301 https://example.com$request_uri;
}
location @bitrix {
add_header Cache-Control "private, max-age=1209600";
fastcgi_pass $php_sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/urlrewrite.php;
}
location ~* /bitrix/admin.+\.php$ {
pagespeed off;
try_files $uri @bitrixadm;
fastcgi_pass $php_sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_ADMIN_VALUE "max_execution_time = 1200";
fastcgi_read_timeout 1200;
fastcgi_send_timeout 1200;
include fastcgi_params;
}
location @bitrixadm {
fastcgi_pass $php_sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/bitrix/admin/404.php;
}
location = /favicon.ico {
log_not_found off;
access_log off;
expires 7d;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# ht(passwd|access)
location ~* /\.ht { deny all; }
# repositories
location ~* /\.(svn|hg|git) { deny all; }
# Player options, disable no-sniff
location ~* ^/bitrix/components/bitrix/player/mediaplayer/player$ {
add_header Access-Control-Allow-Origin *;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|ttf|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
access_log /var/log/nginx/example.com-access.log;
expires max;
error_page 404 /404.html;
try_files $uri /404.html;
}
location ~ \.php$ {
pagespeed off;
try_files $uri @bitrix;
fastcgi_pass $php_sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Всем привет, сам занимаюсь WEB разработкой уже более 5 лет и споры вокруг противников и сторонников NodeJS в последнее время озадачили меня вопросом, а правда ли NodeJS является серебрянной пулей в WEB программировании или все же это не кому не нужная технология «бум» которой вскоре утихнет как это произошло в свое время с языком Perl о котором ранее статей в день не подавались подсчетам, а сейчас за год найти 2-4 нормальных статей является достижением века.. Ну да ладно, суть не в этом, как вы относитесь сами к NodeJS и какие его достоинства и недостатки можете написать? Мое лично мнение что использование 1 стека технологии под «все» не является верным т.к. 1 язык не может решать хорошо все проблемы, из-за чего языков и «расплодилось» как анимешников после распада совка. Даже Erlang не является эталонном во многих сферах, а фанатики NodeJS с пеной у рта доказывают что их «Божество» даже круче Erlang'a в плане работы с «большим» количеством коннектов. Пишите свои мысли по этому поводу
Disclaimer1: Проблема с данным маном в том, что местной аудитории, например, плевать на ведроид, а тому же 4pda наплевать на фанатичный СПО и избавление от зондов. Рискнем и запостим здесь.
Disclaimer2: Все описанное является суммой наклопленного мной опыта вперемешку с моим личным мнением. Пишите комменты, будем улучшать-дополнять-чинить
Уровень прошивки
Практически все стоковые прошивки на сегодняшний день идут с gapps (Google Apps). Что же это за зверь:
ААААА, как это удолить этот рассадник потенциальных уязвимостей и жора батарейки?
Сложный вопрос, на самом деле. Есть три варианта действий:
Я тут начал наслаждаться, но вдруг понадобились пуши, да и Uber требует зонды. Что делать?
Вдоль
Попробовать поставить MicroG, свободную реализацию клиентской части гуглозондов. Самая больная часть: помимо собственно MicroG вам нужно будет запилить себе Signature Spoofing. Коротко говоря, это обход защитного механизма, не позволяющего прикидываться gapps'ами кому попало. Для этого необходимо либо патчить прошивку при помощи Xposed/Needle/Haystack, либо использовать совместимую прошивку (смотрите список, по ссылке, их стало очень много). Все подробности по той ссылке.
MicroG позволяет завести пуши, сервисы геолокации (со множеством бекендов, ищите nlp location backend в f-droid) и большое количество софта (когда я в последний раз тыкал, работали даже покемоны).
Уровень софта
Без гуглозондов жить есть!
https://f-droid.org/ — каталог с опенсорсным софтом.
Предлагаю вам следующий список приложений, способный заменить типичный набор проприетари из типичной вендорской прошивки. Аналогичный список: https://github.com/Datenschutz/awesome-FOSS-apps
Если вы будете ставить проприетарный софт, помните о следующем:
Права суперпользователя
Читая васянский 4pda вы часто можете увидеть «ну и накатываем SuperSU.zip». Не делайте этого. Есть прекрасный опенсорсный superuser, совместимый со свежими ведроидами. Нужно лишь поставить zip (используйте beta на android >=6) и apk.
Если ваша прошивка основана на LineageOS, то все еще проще. Где-то рядом с загрузками в директории extra должен валяться zip, включающий встроенные и интегрированные в прошивку права суперпользователя. Профит.
XPosed
XPosed — опенсорсный фреймворк для низкоуровневых хаков.
Уровень устройства
Тут тоже всё плохо. Выбор:
Следует также заметить, что:
Уровень физической безопасности
Для чего нужна физическая безопасность:
Допустим, ваш девайс попал в руки злоумышленнику.
Сразу скажу: всё плохо. Вам может показаться, что заботливые производители позаботились о вас, залочив загрузчик вашего телефона и не позволяя его разблокировать, не удалив все данные с телефона.
Я бы на вашем месте на это не рассчитывал.
Выводы:
Модули сотовой связи
В каждом мобильном телефоне, почти каждом планшете есть GSM-модуль мобильной связи. Это —
Так что тут все настолько плохо, что я даже предложить ничего не могу. Страдайте.
Вроде, все, что хотел сказать. Выдыхаю
Всем доброго времени суток, сижу и туплю казалось бы на ровном месте. Провайдер ЭР-Телеком (торговая марка Дом.ru). Не могу запустить на роутере (openwrt OpenWrt Barrier Breaker 14.07-rc3 / LuCI Trunk (svn-r10467) ) ipv6.
В ноябре 2013 года провайдер ЭР-Телеком (торговая марка Дом.ru) запустил нативную поддержку протокола IPv6 в 29 городах, в том числе и в Волгограде (AS39435). Подключение происходит как и прежде через PPPoE, а для выдачи адреса IPv6 используется DHCP-PD (Prefix Delegation). При этом предоставляется один динамический префикс /64. Реализовать статику и обратные зоны обещают в начале 2014 г. В связи с особенностями реализации подключения, безкостыльное использование IPv6 возможно только через маршрутизатор.
Докрутил до такого конфига:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0' config globals 'globals'
option ula_prefix 'fd34:6e16:f7bc::/64' config interface 'lan'
option ifname 'eth0.1'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60' config interface 'wan'
option _orig_ifname 'eth0.2'
option _orig_bridge 'false'
option ifname 'eth0.2'
option proto 'pppoe'
option username ''
option password ''
option ipv6 '1' config interface 'wan6'
option _orig_ifname '@wan'
option _orig_bridge 'false'
option proto 'dhcpv6'
option ifname 'eth0.2'
option reqprefix 'auto'
option reqaddress 'try' config switch
option name 'switch0'
option reset '1'
option enable_vlan '1' config switch_vlan
option device 'switch0'
option vlan '1'
option ports '0t 2 3 4 5' config switch_vlan
option device 'switch0'
option vlan '2'
option ports '0t 1'
Как понимаете роутер по ipv6 не получает подсеть.:(
Таки поставил на него Linux. На скриншоте Debian с Enlightenment. Особых трудностей не возникло, кроме того, что из-за криворуких мейнтейнеров из аура (не собирался gcc под arm) ядро пришлось собирать на убунте. В общем, пока неюзабельно. Что нужно сделать:
Еще не завелся Wi-Fi, но думаю, собрать ядреные модули не проблема. Если не считать эти проблемы, то все просто прекрасно. Режим Tablet в E17 таки конфетка.
← предыдущие | следующие → |