Update BIOS от Линукс машина

Файловете за обновяване на BIOS обикновено се разпространяват от производителите на дънни платки като изпълними файлове за DOS или Windows.

Е, ако на машината има само Линукс, за съжаление трябва да се прибегне до непопулярни мерки. Най-лесното, което открих е да се следват инструкциите от http://www.biosflash.com/e/bios-boot-cd.htm

Свалят се DOS файлове за BIOS-a от производителя и се добавят към drdos.img файла в папка boot_cd.

Нататък може да се прескочи CDBurnerXP и се използва EasyBoot (https://www.ezbsystems.com/easyboot/download.htm) като се замени някое от менютата например от run winpe.iso на run drdos.img.

При нужда може да се добави и още нещо.за да се оправдае цяло cd с данни :))

Безплатни (като безплатна бира) сайтове за 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/
    Дълъг списък със сайтове за изображения

Извличане на сертификат и частен ключ от pfx

Вече съм писал относно инсталиране на сертификати тук и тук   но днес ми се наложи да извлека сертификата и частния ключ от pfx файл. Това се оказа също лесна задача:

За частния ключ:

За сертификата

Silverlight 5 full trust application in the browser

Silverlight има какво да предложи (все още), макар и все по-малко и все по-трудно. Едно от предимствата достъпни във версия 5, които може да се използва е връзка с хардуер/ COM/ native call в браузър. Отделен е въпроса “защо” и “кой” би искал да се направи по този начин. Във всеки случай, ако сте стигнали дотам има няколко gotchas, които е хубаво да се знаят.
За да имате достъп до файлова система, хардуер и т.н., applet-а е нужно да е с повишени права, което става от настройките на проекта : Require elevated trust when running in-browser. Всичко работи идеално, ако аплета се хоства в localhost или 127.0.0.1 – в момента, който се изпълнява в Internet/ Local Internet всичко изведнъж се скапва и се получава грешки от рода на

За да работи нормално и тук са необходими няколко стъпки:

  • аплетът трябва да е подписан (настройки на проекта – Signing)
  • горния сертификат трябва да присъства в Trusted Publishers на всички клиентски компютри (!!!)
  • ако е self-signed, то разбира се трябва да присъства и в Trusted Root authorities
  • в Registry на всяка клиентска машина е необходимо да се позволи изпълнението на аплети с повишени права в бразуър (ако се изпълнява out-of-browser това не е необходимо).

Необходимите ключове, които търпят промяна са

както е описано в MSDN.
Не измислих нищо по-добро от проверка дали аплета върви с повишени права с

и ако не – да прехвърля към страница с допълнителна информация как да се разреши проблема. А именно еднократно изпълнение на изпълним файл (по-добри идеи?), който променя настройките в Registry и инсталира нужните сертификати.

За инсталиране на сертификатите може да се използва например:

а за настройките в registry:

 

Как да обновим Desire HD (Android 2.3.5) до CM11 (Android 4.4.4)

HTC Desire HD е телефон от края на 2010 с 1 GHz процесор и 768 MB RAM. HTC отдавна спряха всякаква поддръжка и телефонът си остана с Gingerbread 2.3.5.

За радост телефонът се държи изненадващо добре с Android KitKat 4.4.4, който  е и оптимизиран за работа с устройства с по-малко RAM

За да се обнови софтуера до CM11 M8.1 unofficial (Android 4.4.4) са нужни няколко стъпки:

Подготовка:

  1. Компютър с инсталирани HTC USB drivers и USB 2.0 порт, препоръчително с Windows 7. Драйверите за 8/8.1 не са много надеждни, а USB 3.0 портовете не работят по някаква причина с този телефон
  2. USB кабел – най-добре оригиналния. Някои китайски кабели стават само за зареждане, но не и за data transfer
  3. Препоръчително е да работят добре бутоните за звука нагоре/ надолу 🙂
  4. Windroid инструмента от тук: http://forum.xda-developers.com/showthread.php?t=2499926

Отключване на bootloader-a

Всички HTC телефони са със заключен bootloader, но могат да се отключат чрез процедурата описана на http://www.htcdev.com/bootloader

Нов recovery software

Телефонът идва с ограничен recovery software (нещо средно между BIOS и Safe Mode), който е добре да се замени, за да се улеснят всички операции по инсталирането на нов ROM.

Най-лесно това се прави от Windroid като аз flash-нах с TWRP ( за радост автоматично изтегли версия 2.6)

Нов Kernel + ROM

Аз използвах този : http://forum.xda-developers.com/showthread.php?t=2533007 Използва модифициран CyanogenMod 11 M8.1 базиран на Android 4.4.4.

След изтегляне на файла, трябва да се модифицира update-binary или да се изпозлва по-нова версия на TWRP. Към момента на писане  нямаше по-нова официална версия на TWRP, затова просто модифицирах zip файла, както е описано в http://forum.xda-developers.com/showthread.php?t=2532300

След като се модифицира ZIP файла с ROM-a се използва Flash ROM функционалността на WinDroid и се следват инструкциите.

Ако не се модифицра по описания начин се получава следната грешка:

След свършване на операцията в TWRP трябва да се рестартира в recovery mode, за да качи Kernel-а през операцията Flash Kernel
boot.img се намира в главната папка на сваления Custom ROM

Restart и вече всичко би трябвало да е нормално и да се радвате на чисто нов и актуален Android 4.4.4

Има някои неща, които трябва да се конфигурират, за да заработи целия хардуер нормално, но затова в следващите post-ове

Oracle .NET 2 provider разработка под Visual Studio 2013

Така, ето какво е положението:

  • стар код от .NET 3.5
  • използва Oracle .NET 2 provider
  • DataSet-и
  • трябва да се подкара спешно, а има налично само VS 2013

Резултатът е: Exception of type System.Data.Design.InternalException was thrown при отваряне на dataset и при build на проекта.

Повечете предложения за решения се ограничаваха до това, че в xsd файла има директни референции към Oracle Connection String и съответно те причиняват проблем. Това, не беше случая при мене, макар и да имаше доста коментари по Интернет, че решава проблема.

Почти бях изпаднал в безизходица докато не стигнах до http://blogs.msdn.com/b/psssql/archive/2011/04/21/conversion-issues-moving-from-vs-2005-to-vs-2008.aspx. Макар и подобен проблем, пътят до решението беше описан методично и точно! InternalException в System.Data.Design може да се появи само в два случая:

  • Cannot find provider factory named {0}
  • More than one data row for provider named {0}

Аха! И двата имаха нещо общо с provider и то вероятно Oracle-ския. Нещата започнаха да се избистрят – ODP.NET беше инсталиран, но само за 2.0, а VS 2013 използва .NET 4.5 и съответно друг CLR и не може да го намери design time.

И наистина в C:\windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config има

и

Ако тези секции се преместят и в machine.config за .NET 4 всичко, донякъде изненадващо, върви точно.

 

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

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

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

Подписването на документи се прави с 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)

Разработка за Windows Phone 8 на машина без SLAT

Разработката за Windows Phone 8 изглежда логична стъпка за всеки разработчик на C# като се имат предвид следните предимства

  • Това е C# и Visual Studio 🙂
  • Таксата за регистрация е само 19$
  • След покупката на Nokia поне в обозримо бъдеще нещата изглеждат добре

Най-сериозния проблем е подкарването на емулатора за Windows Phone, тъй като той изисква Hyper-V, което автоматично означава, че е нужно Windows 8 или Windows Server 2012.

На Windows 8, за да се инсталира и работи правилно Hyper-V е необходима задължителна хардуерна виртуализация (сравнително достъпно от повечето PC-та), но и SLAT – i5, i7 и само някои i3 процесори. Почти всички Core2 Duo не поддържат тази възможност. Накратко, ако имате лаптоп по-стар от 2 години шансовете са, че няма да може да пуснете Hyper-V на Windows 8.

Какво пробвах и не работеше – всякакви предложени варианти по интернет, виртуални машини локално и в Azure – Hyper-V не може да се стартира, защото hypervisor is already present (абсолютно вярно).

Това, което се оказа решение (доколкото инсталирането на сървърна OS е решение) е да се използва Windows Server 2012 Standard (Foundation не върши работа, тъй като не поддържа Hyper-V). Тук няма нужда от SLAT, а само от хардуерна виртуализация и No Execute Bit.

В случай, че емулатора изкарва съобщение за грешка е нужно да се обнови VS 2012 до последния update (в момента това е 3)

 

Бавен 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

 

Бърз начин за тестване на натоварване на уеб сайт

След инсталация на Apache в папка binary има прост инструмент за натоварване на уеб сайтове – ab

Важните параметри са два

-n – указва броя заявки, които да се изпълнят

-kc – конкурентни заявки (с keep-alive)

Например:

ab -kc 50 -n 1000 http://www.google.com/

И резултатът е нещо подобно на:

Percentage of the requests served within a certain time (ms)
50%     49
66%     50
75%     53
80%     53
90%     54
95%     55
98%     68
99%     79
100%    103 (longest request)

Което показва, че google се зарежда доста бързо дори и при многобройни конкурентни заявки 🙂

Може да се намерят много статии по въпроса, например : http://www.garron.me/en/go2linux/how-benchmark-stress-your-apache-nginx-or-iis-server.html