BlogТем, кто с нового года решил бороться за режим дня.
Если хочется ложиться спать в 22:00:
1. Перестаем есть и пить к 19:00 (коньяк не в счет)
2. Ставим будильник на 20:30 и на 21:00, за эти пол часа доделываем все что собирались, с тем чтобы в 21:00 закрыть лаптоп и заняться вечерним туалетом. За следующий час добираемся до кровати.
3. Ставим будильник на 7:45 и 8:15 за эти пол-часа вылезаем из под одеяла.
4. Переживаем неделю вечерней бессонницы и утреннего мутноглазия.
Сегодня по городским дорогам бегает множество автомобильных марок, а то время когда 3х летний ребенок угадывал логотипы и спрашивал «это автомобиль или жигули» давно прошло. Все больше появляется автомобилей электрических.
Откуда взялось такое разнообразие?
Современный автомобиль — это архитектура, набор требований, система верификации, система контроля качества и так далее (см APQP, ISO 26262, ISO 21434 и т.п.). Кто там делает конкретную батарейку или коробку передач - дело десятое. Из-за того, что автопром жестко регулируется и кроме решения чисто инженерных задач, конструкторам нужно удовлетворять требованиям безопасности и экологии, многие, даже очень маститые производители (OEM), предпочитают заказывать ключевые агрегаты у партнеров, а не делать их самим.
Одна и та же машина может быть сделана с совершенно разным инженерным дизайном. Например, модная фишка "при включении поворотников показываем на инструментальном кластере картинку с камеры в зеркале" можно реализовать как "подключаем весь инструментальный кластер по ethernet", а можно как "делаем два экрана - один подключен по CAN и умеет становиться прозрачным, другой подключен по ethernet и показывает камеру". Первое решение не проходит по безопасности, второе сильно дороже.
Инженерная команда OEM постоянно ищет баланс между стоимостью, функционалом и безопасностью.
Электромобиль существенно проще, чем автомобиль с ДВС, особенно в серийном производстве. Например, самая простая система полного привода - насос, клапан и погружное сцепление, требует расчета крутящих моментов, времени подключения и т. п. и в итоге сложного и высокоточного производства. Также он требует механической части, передающей крутящий момент с основного двигателя на заднюю ось. В электрической машине полный привод — это просто еще один типовой мотор на задней оси.
Именно поэтому Китай, который может себе позволить выгнать на полигон 300 автомобилей и потом, по результатам тестирования переделать до 30%, взорвался новогодней ёлкой различных брендов. Но тем не менее осознание необходимости правильных процессов приходит и к китайцам, поэтому качество китайских решений увеличивается год от году.
Российские автомобили идут по пути молодых китайских брендов: создают собственный инженерный и бизнес дизайн, дальше сотрудничают с поставщиками из разных стран (в том числе и российскими), используя готовые или заказывая разработку компонентов.
Изначально Тесла (VW group, MB) и китайские машины были устроены совершенно по-разному. Если очень и очень грубо, Тесла начиналась как уменьшенная электричка (asynchronous induction motor) китайские же автомобили — это выросшие мопеды (synchronous permanent magnet motor). С совершенно разными требованиями к охлаждению и всему остальному. Но сейчас технологии активно перемешиваются и дополняют друг друга – например, Тесла использует SPMM на задней оси. Что ведет к дальнейшему удешевлению электромобилей.
Технологическое упрощение настолько значительно, что классические автомобили с ДВС неизбежно будут вытеснены автомобилями с электродвигателями. Но вот что именно будет снабжать эти двигатели электричеством пока неизвестно.
У сегодняшнего, батарейного, решения есть множество проблем – от затрат на переработку отработанных батарей, до необходимости находить мощности и место под зарядные посты в городах. Решения у этих проблем нет, поэтому если не изобретут какие-либо радикально новые батареи, то будущее останется за водородными топливными элементами или чем-то подобным.
Также пока сомнительны перспективы автопилотов. Несмотря на то, что помощник водителя (ADAS), который позволяет убрать с руля руки (L2) или даже отвлечься на кофе и бутерброды (L3) уже реальность и обязательный атрибут автомобилей ближайшего будущего, основанный на ИИ автопилот пока остается в стадии дорогих экспериментов. Производители не могут доказать, что автопилот никого не убьёт если датчики забьются грязью, или, что хаккеры не смогут взломать автопилот и направит автомобиль в толпу прохожих. На мой взгляд, появление полноценного автопилота – вопрос не близкий и во многом зависящий от поддержки автопилота инфраструктурой (умные светофоры, отбойники на остановках и т.п), которая позволит повысить надежность и предсказуемость автоматических автомобилей.
Если вам дорого ваше здоровье запомните несколько простых правил:
1. Не слушайте ничьих советов, особенно соседок, продавцов в аптеках и терапевтов с 50-летнем стажем. Если вы спрашиваете что-то на спец форуме, дождитесь, когда вам ответит врач, а не такие же больные.
2. Не ленитесь проверить все назначенные препараты, что они имеют отношение к тому, что вы лечите, что они совместимы между собой, что у вас нет аллергии на компоненты.
3. Не бойтесь спросить если вам что-то не понятно. Т. е. если вы не понимаете зачем вам назначили тот или иной препарат, попросите обосновать назначение.
4. Выбирайте самый дорогой аналог, если тот препарат, который вам назначили, не влезает в бюджет. А еще лучше попросите врача подобрать аналог, не доверяйте это продавцам в аптеке.
Три правила приличного стиха
1. Размер должен быть жестко выдержан. Вам же не приходит в голову нарисовать на портрете ухо вдвое больше, чем все остальное? Так и со стихом - в нем может не быть рифмы, но размер должен быть. Размер может быть простым или сложным, но он должен быть одинаковым во всех частях стиха без пропусков и искажений (я не говорю сейчас о лимериках, сонетах и т. п.)
* * *
Посуда. В квартире. Опять не мыта
Отравлена этим душа
Год. Второй. Неудачных попыток
И я убегаю спеша.
* * *
Я видел море
Море злилось
Над головой сгущались тучи
И мне хотелось плакать горько.
2. К стиху применимы все те же правила стилистики что и к прозе. Вы же не рисуете статую свободы на картине про лес и медведей? Должны быть выдержаны времена. Например, если написать выше "сгустились" то последняя строчка должна быть "мне захотелось". Не должно быть явных сюжетных ляпов.
* * *
Я видел море
Море злилось
Над головой сгущались тучи
Но мячик я пинал ботинком
3. Избегайте банальных рифм (глагольных, любовь-кровь и т. п.). Иногда они оправданы (ниже глагольная рифма внутри строфы сбивает повествовательный ритм, подчеркивая судьбу несчастной чайки), но надо быть очень осторожным - во большинстве случаев лучше пропустить рифму вообще, чем рифмовать "лилось - билось".
* * *
Садилось солнце, прямо в море,
Грозою море ощерилось
С волной жестокой чайка билась
Спеша погибнуть на просторе
PS: Примеры мои, не из Горького ;)
Method one
Method two
Method three
openssl aes-256-cbc -salt -in secrets.txt -out secrets.txt.enc
openssl aes-256-cbc -d -in secrets.txt.enc -out secrets.txt.new
* You will be prompted for a password.
openssl req -x509 -newkey rsa:1024 -keyout file.pem -out file.crt -days 9999 -nodes
or advanced method
openssl genrsa -out server.key 1024
openssl req -new -key server.key -out server.csr \
-subj '/C=RU/ST=St.Petersburg/L=St.Petersburg/CN=www.4foo.net'
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
make sure you enter right value to CN field
One of common question of python programming is how to do jar equivalent - i.e. run something like python myapp.zip . Below I describe a method producing a close result (hey python team - good place to enhance): unfortunately couple of bugs in python zip handling (e.g. python can't import module from zipfile with comments) make this task a little bit tricky.
- Make sure you app is ready to work with zip bundle i.e. file is replaced to ZipFile when necessary.
- Prepare the entry point:
main.py def __main__(): ....
- create a bundle
zip -r test.zip *.py *.pyc
- create a launcher either shell or pure python one and place it somewhere.
#!/bin/sh mod="$1" shift python -c "import sys; sys.path.insert(0,'${mod}'); import main;main.__main__()" $*import sys sys.path.insert(0,sys.argv[1]) import main main.__main__()enjoy
After dozen of experiments I finally come to next action sequence with gdb as the most universal/reliable one.
set solib-absolute-prefix /home/dms/Sept12/12_09_2008_20_00_node4/D
Notice: set substitute-path doesn't work because gdb apply it to source files only
gdb -x D/gdbrc D/java core
info shared
You will see something like:
(gdb) info shared
From To Syms Read Shared Object Library
No /lib/tls/libpthread.so.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0x00a05bb0 0x00a068c4 Yes /home/dms/Sept12/D/lib/libdl.so.2
...
0x008c9c00 0x009b9800 Yes /home/dms/Sept12/D/lib/tls/libc.so.6
No /lib/libnsl.so.1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In my case:
D/lib/tls/lib/tls/libpthread.so.0 D/lib/libnsl.so.1
To gather all libraries necessary to open a coredump on other machine run:
gdb -batch --eval "info shared" D/java core 2> /dev/null |\ sed -n -e 's/^.*Yes[^\/]*\//\//p' -e 's/^.*No[^\/]*\//\//p' > filelist
on your own machine and than:
cat filelist | zip zipme.zip -@
on client one
To do it:
#0 0xffffe424 in __kernel_vsyscall () #1 0xb76f96e0 in raise () from /lib/libc.so.6 #2 0xb76faf15 in abort () from /lib/libc.so.6 #3 0xb70abbaf in os::abort(bool) #4 0xb71de555 in VMError::report_and_die() #5 0xb70b257c in JVM_handle_linux_signal () #6 0xb70ae7a4 in signalHandler(int, siginfo*, void*) () #7 <signal handler called>
Ever without symbols - you should have exactly 6 entries before <> and os::abort is right the next after libc abort.
0xb6bf2bd0 0xb71fe250 Yes (*) /opt/jdk1.6.0_18/jre/lib/i386/server/libjvm.so
<os::abort> - 0x4b8fdf = N, N + 0x60b680
*Calculate offset between your JVM and cu JVM
<os::abort> - 0xb70abbaf (os:abort from my core, or compare two JVM starts)
info address <recalcualted_address>
If you installed windows 10 on old Thinkpad T420 and you realize that neither bluetooth nor wifi are working properly (windows reports that it is turned off and can't turn it on) >do following:
You should be able to use WiFi/Bluetooth now.
to display cert details