Category: Программы и инструменты

Letsencrypt

How to: LetsEncrypt HTTPS on OpenWRT with uhttpd

My old router TP Link WRN740N hosting my homepage stokito.name and it’s too small to handle full LetsEncrypt certbot installer and OpenSSL so the only one option is to use manual certs installation from my laptop and renew them after 3 month. Actually this can be automated too.

Now, lets generate certs for your domain:

$ sudo certbot certonly --manual --preferred-challenges http

Answer all the questions and it will ask you to upload a file to your router:

-------------------------------------------------------------------------------
Create a file containing just this data:

1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KuC8g.OKKBaAC2SgfXHQyvgKrLkn3zyCNH82xHgKsMg9OQQJE

And make it available on your web server at this URL:

http://www.stokito.name/.well-known/acme-challenge/1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KuC8g

-------------------------------------------------------------------------------
Press Enter to Continue

You need to create the folder on router:

# mkdir -p ./.well-known/acme-challenge

Then upload the files via SCP from your computer to router:

$ echo "1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KeC4g.OKKBaAC2SgfXHQyvgKrLkn3zyCNH82xHgKsMg9OQQJE" > 1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KeC4g

$ scp ./1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KeC4g root@192.168.1.1:/www/.well-known/acme-challenge/1Fyw2Q3IARaG0G6RVUJS587HG_Ou6pKpBLZC-_KeC4g

BTW, there is no any analogue of WinSCP for Linux but you can try to run it on Wine.

Then go back to certbot and press Enter. It will check that files are in place and accessible from web.

 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/stokito.name/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/stokito.name/privkey.pem
   Your cert will expire on 2018-01-13. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again.

It generated two files: privkey.pem and fullchain.pem (which is not public key!)

Finally, you need to convert the private key and the certificate from the ASCII-armored PEM format to the more economical binary DER format used by uhttpd:

openssl rsa -in privkey.pem -outform DER -out uhttpd.key
openssl x509 -in fullchain.pem -outform DER -out uhttpd.crt

Upload them to the router

$ scp uhttpd.crt root@192.168.1.1:/etc/uhttpd.crt
$ scp uhttpd.key root@192.168.1.1:/etc/uhttpd.key

On the router you need to install uhttpd-mod-tls:

# opkg update
# opkg install uhttpd-mod-tls

edit /etc/config/uhttpd as described in docs i.e. like this

config uhttpd 'stokito.name'
    list listen_http '31.172.137.103:80'
    list listen_https '31.172.137.103:443'
    option redirect_https '1'
    option home '/www'
    option rfc1918_filter '0'
    option cert '/etc/uhttpd.crt'
    option key '/etc/uhttpd.key'

Here 31.172.137.103 is my public static IP.
Note that 443 port should be opened in /etc/config/firewall:

config rule
    option target 'ACCEPT'
    option src 'wan'
    option proto 'tcp'
    option dest_port '443'
    option name 'HTTPS'

Then restart the firewall and uhttpd server:

# /etc/init.d/firewall restart
# /etc/init.d/uhttpd restart

Now try your site in browser.

But please check your site latter: I noticed that uhttpd was down but after restart it worked well.

Реклама

Лучшая мышка для программиста — это трекбол и трекпоинт

Ежедневно мы так много работаем с мышью что она уже является продолжением нашей руки. Даже спустя десятилетия производства мышей выбрать подходящую довольно сложно. Осуждения мышей на программистских форумах не утихают. Лично я уже много лет пользуюсь не мышью, а трекболом Logitech M570 wireless trackball, вместе с ThinkPad клитором (трекпоинтом) и они так классно дополняют друг друга что уже просто не понимаю как программисту можно пользоваться чем-то другим.
Трекбол Logitech m570

Купил как только начался туннельный синдром в запястье на правой руке и он прошёл. Но из-за клавиатуры чуть позже начался на левой руке, поэтому стараюсь лишний раз ею не пользоваться и полечил её в клинике ультразвуком, вроде пока прошло.
Боли в суставах большого пальца я не замечал но всё таки вспомнил что да, действительно бывали. Т.е. проблема есть но не очень критична. Хотя тут может быть очень индивидуально.

Но кроме того что рука отдыхает самое крутое что трекболом можно пользоваться на любой поверхности и не надо ёрзать. Т.е. нет этого противного звука скрежета по столу, не нужно ковриков для мышки или гладкого стола. Особенно это круто когда ты работаешь за ноутбуком в постели: положил его на живот или скомканную простыню и работаешь себе спокойно. Я даже успешно поработал едя несколько часов микроавтобусе при сильнейшей тряске.
Из-за того что ты не елозишь по столу получается тише но, у него довольно громковатый клик. Причём у клика звук странный — «двойной» ты слышишь клик как опустилась клавиша и ещё клик как поднялась.

Чистить приходится, но в отличии от шариковых мышек он засоряется намного реже, потому что загрязняется только жиром с пальца а не грязью со стола. К тому же вычищается намного легче, потому что грязь не на роликах а на пластиковых прижимателях шарика.
Ещё из проблем: у первого трекбола стал вместо одного клика, срабатывать как двойной. Что-то с чувствительностью кнопки случилось или конденсатором каким-то. Это бесило люто — жмёшь на крестик закрыть программу она закрывается и невольно нажимаешь на крестик закрыть следующей программы.
Из-за того что я перешёл с удалёнки обратно в офис я его каждый раз вытаскивал и носил на работу. От постоянных вытаскиваний у меня сломался USB ресивер. Вообще говоря, нужда в отдельном ресивере это плохо. Во первых он занимает USB порт, а у меня на ноуте их только три а на рабочем стационарном компьютере он вообще сзади системника. Хотелось бы Bluetooth но вроде как для блютуза нужно чтобы полностью система загрузилась и драйвера.

Ресивер можно найти в интернете и купить отдельно (хотя дороговато), но я просто купил ещё два трекбола — один домой другой работу. Найти и купить эти трекболы — отдельная печальная история. Их вроде сняли с производства и я выискивал по всему интернету.

Но у рабочего тоже по-моему периодически срабатывал двойной клик. Так-что это может быть их родовой травмой.

Ещё из неприятных моментов: когда падает на пол вылетает и укатывается шарик. Случается редко, обычно в путешествиях но очень неприятно его искать.
Отдельно мне не нравится что нет средней кнопки, а кликать роликом очень жёстко и неприятно.
Ещё тут нужно сказать что трекбол тяжёлый, большой и занимает больше места. Это может быть неудобно если у вас какой нибудь нетбук и вам хочется иметь маленький вес и размер. У меня например он полностью занимает боковой карман рюкзака, а например, в карман штанов он вообще не поместиться.
Но из-за того что он большой, ладонь полностью ложиться на него и ощущения приятнее. Т.е. это требование эргономики.

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

Ещё один неприятный момент: когда парно программируешь с коллегой, он пытается поелозить трекболом как мышкой 🙂 Поэтому у меня за компьютером лежит ещё отдельно «гостевая» мышка, и кстати получается удобнее — нужно куда-то навести курсор, ты не просишь коллегу дать мышку а просто сам наводишь. Поэтому если вы работаете в офисе то вам от традиционной мышки всё равно не избавиться. Но и даже если у вас будет две обычные мышки это сильно улучшит удобство в парном программировании.

Ещё на трекболе есть две кнопки для броузинга «Вперёд по истории» и «Назад». Но я ими не пользуюсь. ИМХО намного было бы удобнее если бы кнопки работали как «Page up» и «Page down». Может их можно перемапить но у меня руки не доходили.

Очень важный момент: привыкание к нему после мышки было очень быстрым, уже за день я спокойно пользовался. Точность очень хорошая, возможно даже лучше чем у мышки. Но! Скорость перемещения меньше чем у мышки. Поэтому для стрелялок, типа Халвы или Контры, он не подходит, но для неспешной и долгой работы, как например за стратегиями типа Эпохи Империй он просто отличный.

Батарейки держат очень хорошо, точно больше двух лет и я ещё ни разу не менял. Дальность приёма ресивера огромна — через две комнаты ловит отлично.

Итак, плюсы:
* Не болит кисть руки
* Работает на любой поверхности, включая просто на весу что можно использовать во время презентации.
* Не нужно ёрзать по столу
* Хорошая точность
* Привыкаешь быстро
* Батарейка практически вечная
* Беспроводная
* Эргономичная

Минусы:
* Очень часто и довольно быстро начинаются проблемы с двойным кликом. Умельцы перепаивают кликер.
* Дороже чем обычные мышки
* Только для правшей
* Может начаться боли в суставах большого пальца
* Скорость перемещения ниже — не годится для динамичных игр
* Периодически нужно чистить под шариком
* Шарик при падении вылетает
* Пользоваться сможете только вы, поэтому если вы парно программируете нужно вторую мышь держать.
* Шумновата
* Нужен ресивер
* Неудобная в транспортировке
* Тяжелее найти

Варианты которыми я не пользовался, но может вам подойдёт:
* Для левшей или тех у кого болит большой палец есть трекбол Logitech MARBLE.
* Некоторые пробуют вертикальные мышки, например DELUX M618 Wireless Vertical Laser Mouse

Как определить ставить ли новую Windows или любую другую программу

Эволюция Корзины

Среди IT-специалистов распространено мистическое убеждение:

Считается, что каждая четная версия Windows выходит у Microsoft неудачной, а каждая нечетная, наоборот, хороша. Здесь стоит вспомнить критику Windows Millenuim, Windows Vista и Windows 8, которые были четными, а также успех Windows XP и Windows 7. Microsoft пропустила цифру «девять», сделав Windows 10 нечетной в этом списке. Впрочем, некоторые специалисты «девяткой» считают Windows 8.1, что переводит «десятку» в совсем другую категорию.

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

Вспоминаем: после XP люди ждут очень перспективной ОС с ещё более красивой графикой, гиберацией, повышенной безопасностью и возможностью не перезагружать комп после установки программ или драйверов. Появилась Vista. Люди негодуют — глюки, производительность никакая и т.п.
Разработчики чешут репу, многое отключают в системе чтобы не мешало, исправляют баги, что-то добавляют и выпускают семёрку.
Пользователи смотрят — производительность лучше чем у висты, радуются и забывают, что XP работала быстрее (момент немного спорный) и требовала намного меньше ресурсов для компьютера.
microsoft начинают воевать со старушкой XP, так как она остаётся неплохим конкурентом семёрке и активно используется в Китае вместе с IE 6

Сейчас повторяется то же самое: обещают поддержку ARM процессоров и телефонов, совместимость со старыми приложениями и возможность играть в игры для Xbox, революционный интерфейс и т.п.
Когда восьмёрку выпустят внезапно поймут что погнались за двумя зайцами, есть много багов, на телефонах тормозит и т.п. и т.д.
Разработчики почитают гневные реплики пользователей и к следующей (наверно, девятой) версии всё исправят. Судя по всему, ещё лет пять-десять как минимум семёрка будет оставаться одной из используемых ОС для компьютеров.

Впрочем, неудачная (если вдруг) Windows 8 не понравится некоторым пользователям, и они перейдут на linux или продукцию компании Apple, которая в последнее время имеет свободных денег больше чем microsoft. Не будем забывать и про Google, которые, в принципе, тоже могут что-то выпустить.
(с) http://forum.boolean.name/showthread.php?t=15523

ИЧСХ и всё прямо так и случилось!

Молоток как эволюция Виндовс

Поэтому есть релизы стабильные или успешные а есть тестовые или неуспешные. Понять успешность можно лишь по статистике как быстро на него переходили («адоптировали»). Я например за вистой и восьмой виндой даже не поработал. Иногда когда вижу у кого-то удивляюсь что это такое.

И это касается не только Виндовс но и других крупных продуктов с длинным релизным циклом, обычно у «коробочных» типа Microsoft Office. Но есть интересный пример версии Java:
1.0 Её даже не публиковали, так что скипнем
1.1 Первая опубликованная, ажиотажа не вызвала. Помещалась на дискету. Можно считать релиз неуспешным.
1.2 Появились коллекции, JIT, Swing, Java plugin и аплеты (а тогда это был крутяяяк) — количество кода библиотек выросло в три раза и уже на дискету не влезало. Успех!
1.3 Вообще ниочём, багфикс. Неуспех.
1.4 Регекспы, уродский логинг АПИ, но зато NIO, криптография, XML парсинг. Вроде ничего такого особого, но Успех. Началось активное использование для веба, сформировались библиотеки и фреймворки, появились первые JVM языки Groovy и Scala.
1.5 Синтаксический сахар (статик импорты, аннотации, for each, enum, varargs) но главное что появился внятная Java Memory Model и Concurrency. Внезапно успех, хотя почти на всех старых джава проектах этот на этот сахар ещё не переписали. Но грамотно заложенная и чётко специфицировання JMM сыграла
1.6 Последний релиз Sun’а ничем не интересный кроме внятных процессоров аннотаций. Всё замерло на этом релизе надолго и все только и любая магия так и делалась на аннотациях пока по ночам мы плакали в подушку мечтая о лябдах. Тем не менее релиз оказался довольно стабильным и всё работало много лет, так что всё таки успех.
1.7 Первый релиз Оракла. Ничего интересного, просто промежуточный перед восьмой джавой. Неуспех.
1.8 Ляяямбдыыыыы! И наконец-то внятный Date API. Все перешли на восьмую почти мгновенно. Успех!
1.9 Уже на выходе, по сути будет только улучшена модульность что конечно тоже сверхважно для древних энтерпрайзных монолитных проектов, но хипстеры уже всё говнокодят на микросервисах где всё проще переписать и не нужно сильно запариваться архитектурой. Так что особо ажиотажа особого не будет.

Итак, тут закономерность чётности версий прослеживается ну только при очень большом старании. Но если посмотреть не каждую вторую, а каждую третью версию то можно заметить что 1.2, 1.5 и 1.8 то эти релизы были особенно успешными. Причём даже не так, они наделали шума. В основном из-за того что в них появлялись новые «Вау» фичи. И это принципиальное дело кстати.
Представьте себя менеджером продукта. У вас есть некие срочные задачи — например секьюрити уязвимости, есть задачи по долгосрочному плану улучшения архитектуры проекта, но периодически вам нужно добавлять в продукт что-то такое что снова привлечёт внимание пользователей и даже те кто пользовался древней версией и довольны захотели бы купить новую версию. Например в случае с Джавой это новые возможности языка.
Т.е. есть разные задачи с разными характеристиками по важности и срокам и при грамотном менеджменте ты их учитываешь. Если их граммотно разложить и расписать на графике то можно найти множество таких закономерностей и предсказывать свойства следующей версии.
Поэтому можно смело предсказывать что например в десятую версию Джавы будут внесены какие-то вау фичи.

Но что самое интересное, если посмотреть на минорные версии джавы то там это правило чётности уже заметили давно и с пятой джавы даже приняли как схему версионирования: чётные релизы содержат новый функционал, нечётные багфикс и секьюрити апдейты. А позже ещё и усложнили настолько что даже пришлось на конференциях объяснять как теперь с этим разбираться

Но не всегда четно-нечётная схема усложняется, многие как раз наоборот стараются перейти к более частым и но последовательным и плавным rolling releases и continuous delivery:

Между сериями 1.0 и 2.6.x ядро Linux использовало нечётные номера для бета-версий, и чётные — для стабильных. Например, Linux 2.3 был серией в разработке, а Linux 2.4 — серией стабильных релизов, в которую перерос Linux 2.3. В номере релиза Linux kernel сначала писался номер второстепенной версии, а затем номер релиза в возрастающем порядке. Например Linux 2.4.0 → Linux 2.4.22. После релиза 2.6 в 2004 году Linux больше не использует эту систему, теперь цикл релиза намного короче. Сейчас они просто увеличивают третье число, используя при необходимости четвёртое.

Тоже самое кстати происходит и с броузером Chrome а позже и с Firefox’ом. Какая версия Хрома уже никто не знает (у меня например уже 16.3.0.6796). Для обеспечения надёжности они просто создали отдельную «вечную бету» которую могут себе поставить и протестировать все желающие и Feature toggling.

Непрерывная поставка
Таким образом цикл релиза и фидбека ускорился и подобные схема рано или поздно будет использована почти во всех программах.
И вы не отставайте 😉

Простейший способ как качать фильмы и музыку с интернета через Торрент

Записал инструкцию для далёких от компьютеров людей как качать с Torrent

Надеюсь будет всё понятно

Vuze Leap (лягушка)
UTorrent

«Comparing JVM Web Frameworks» by Matt Raible

It’s very cool talk about qestions that every Java developer must decide on new project. Overview of all popular Java frameworks from JSF and Struts to Play and Vaadin.

Функциональные тесты в Grails: Spock + Geb = Кайф

Вообщем если вы хотите знать почему я прусь по Груви и Греилс посмотрите это видео

Я сам хотел такой доклад сделать но Богдан всё отлично рассказал за меня.
Всем приятного просмотра и расширения сознания