Tile Server за OpenStreetMaps

OpenStreetMaps са прекрасни карти, които са безплатни за  използване, могат да се редактират от всеки и допускат да се изтеглят сурови данни.

За да се използват данните е нужен “tile server”, който да ги предоставя. Стандартните mapnik и т.н. са много добри, но и сложни за подкарване.

Тук идва Tile Server GL – лесен за инсталиране като npm пакет или docker контейнер. NPM пакета съществува и в разновидност, която е изцяло javascript (без растер) и включва node сървър.

За работа са необходими mbtiles карти например от OpenMapTiles

Цялото подкарване отнема по-малко от 5 мин и след това it just works 🙂

Генериране на Nuget пакет и качване в локално хранилище

Бърз начин за генериране на nuget пакет и Upload към локално (shared folder) хранилище

 

Криптиране на връзката към MS SQL Server

Бърз начин за осигуряване на криптирана връзка по пътя (data at transit) до MS SQL server е използването на SSL сертификати от сървърна страна.

Ако не може да се издаден валиден SSL сертификат или няма възможност за локален CA, то може да се добави TrustServerCertificate=Yes към connection string-a към базата, за да вярва на сървърния сертификат.

Разбира се по този начин осигуряваме криптирана връзка с лесна конфигурация на цената на риска от използването на self-signed сертификат.

 

Криптиране на конфигурационни файлове в ASP.NET

Криптиране на connectionStrings секцията в web.config използвайки DPAPI. Командата трябва да се изпълни на машината, където е сървъра, защото използва данни от machine.config

и съответно декриптиране на секцията

 

Конфигуриране на TDE за SQL Server

SQL скрипт за създаване на TDE (Transparent Data Encryption) и осигуряване на “Encrypt the data at rest”.

Информацията в базата данни е криптирана и ако някой намери backup на базата няма да може да я използва.

Друга положителна страна е, че приложението,което достъпва данните няма нужда се променя и продължава да работи както и досега.

Криптирането на базата е онлайн, прозрачно и може да се проследи до къде е стигнало чрез изпълнение на query към dmv таблица.

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

 

 

File manager за Tiny MCE (asp.net)

TinyMce е прекрасен rich text редактор с много възможности, лесна интеграция и добър външен вид.

Безплатната версия винаги ми е вършила много добра работа, като единственото съществено нещо, което ми е липсвало е Media/File Manager. В Про версията има MoxieManager, както и много други plugins, но тя струва пари (плаща се месечна такса).

Тъй като на мене ми трябваше нещо просто и бързо, открих http://www.roxyfileman.com/. Поне що се отнася до моя проект върши много добра работа за всички цели. Може да се използва както като stand-alone file manager, така и в лесна интеграция с TinyMce 3/4 и CKEditor.

Debug на Clipper приложение

Clipper е популярен софтуер за разработка на DBase III ориентирани приложения от края на 80-те и 90-те години.

Наложи се да направя промени по едно такова приложение и в процеса научих някои неща, които могат да помогнат за в бъдеще (хе-хе-хе – Clipper и бъдеще в едно изречение!).

Като начало се оказа, че стандартно Clipper генерира p-Code – нещо като байткод, който се изпълнява на собствена виртуална машина.

Така че, за модифицирането на изпълнимия файл не трябва да се пишат ASM инструкции, а специфични Clipper p-Code инструкции.

Например JF (jump if false) e 1B, а JMP е 1E. Съответно лесно се променя кода, тъй като инструкциите са еднакъв размер ( по 1 байт)

Друго полезно нещо е, че приложението е 16 битово, съответно не работи под 64 битова OS. Решението е да се използва някакъв вид виртуална машина, като би трябвало и DosBOX да свърши работа в повечето случаи.

В случай, че започне да се появява грешка DOS Error 4, това обикновено означава, че File handles са изчерпани. Могат да се увеличат, като се редактира следния файл:

Полезни ресурси и инструменти:

Информация за Clipper (на руски) http://softclipper.net/soft/clipper/

Декомпилатор Valkyrie – много удобен, показва pCode-a на приложението. Turbo Vision интерфейс. http://softclipper.net/soft-skachat/dekompilyator-dlya-clipper-5-valkyrie-5.html

valkyrie5

Декомпилатор Rescue5 – генерира сорс кода на приложението и е полезен за бърза справка какво прави програмата. http://softclipper.net/soft-skachat/dekompilyator-dlya-clipper-5-rescue5.html

 

Безплатни (като безплатна бира) сайтове за stock изображения

Сайтове, които предлагат безплатни изображения (stock images) във висока резолюция и които могат да се изпозлват за всякакви (включително комерсиални) цели и са без attribution (няма изискване за обратен линк или друго):

  1. Pixabay https://pixabay.com
    Вероятно най-добрия сайт, на който съм попадал – над 570 000 изображения, добра търсачка и хубав интерфейс
  2. StockSnap – https://stocksnap.io
    Добра търсачка, добър (макар и не богат) избор от изображения
  3. Unsplash – https://unsplash.com
    Може да се използват за всякакви цели
  4. Pexels – https://pexels.com
    Според тях имат 5000 изображения и всеки месец добавят около 600
  5. Picjumbo – https://picjumbo.com
    Навигацията и търсенето не е много удобна
  6. FreeImages – http://www.freeimages.com/
    Много изображения, не съвсем удобно търсене
  7. Списък със сайтове – http://publicdomainarchive.com/free-stock-photos/
    Дълъг списък със сайтове за изображения

Прикачане на документи към данъчна декларация в НАП

Подписването и прикачването на документи към данъчната декларация в НАП всяка година ми отнема поне по час и всяка година след като открия причината си казвам “Ей сега ще си го запиша, за да не се повтори следващата година”.

И съответно всяка година се повтаря :)) Затова този път реших да го напиша и евентуално догодина да съкратя времето в търсене на проблема.

Подписването на документи се прави с CAPICOM като името на файла се взима от <input type=”file” /> тага и  така разбира кой файл точно да се подпише. Проблемът е, че в IE ( а и други браузъри) от клиентската страна стандартно не може да се прочете пътя до файла (с цел security). Пътят, който се прочита е C:\Fakepath\<името на файла> и съответно се изкарва съобщение от ActiveX контролата файлът не беше открит. (Повече информация на http://acidmartin.wordpress.com/2009/06/09/the-mystery-of-cfakepath-unveiled/ )

Този проблем може да се разреши по два начина:

  • Добавя се сайтът в Trusted sites – така реалният път може да се достъпи от контрола на самата страница
  • Прави се директория c:\fakepath и се поставят нужните файлове вътре :))) (В случай, че по някаква причина не може да се добавят сайтове в Trusted sites)

Бавен PHP под Plesk

От много време насам този wordpress сайт се зареждаше ужасяващо бавно, но най-после намерих време да проуча и да разбера какъв е проблема.

Тъй като хостинга е IIS, платформата е PHP, а базата е MySQL имаше доста варианти за проблем. Бързо елиминирах MySQL като вариант и остана IIS/ PHP. По-точно всяка PHP страница се зареждаше за над 5 секунди, колкото и да е малка!

След опити за custom php.ini и така нататък проблемът се оказа в настройката на самото PHP в Plesk. Конкретно за мене в Web Hosting Settings PHP работеше като CGI – смених го на ISAPI extension и всичко тръгна нормално

PHP Setting in Plesk