10. April 2014

Debian Heartbleed openssl bug remains even after upgrade of openssl package

If you’re using Debian and you want to get rid of Hearbleed bug then it’s not sufficient to upgrade openssl package.

The really important package is libssl1.0.0:

apt-get install libssl1.0.0

It will restart all services which depends on this package.

19. February 2012

Tomcat 7 and curl – SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

There is very annoying bug in Open SSL 1.0 which affects curl. When you try to access Tomcat 7 with https with curl you’ll get fancy error:

curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

-k parameter is not working at all

You’re not able to invoke any request against Tomcat 7 with https in default configuration.

The solution is to restrict available ciphers in Tomcat’s https connector:

ciphers="SSL_RSA_WITH_RC4_128_SHA"

Restart Tomcat and curl will work.

28. August 2011

Software Feature Paradox

By adding more features you'll achieve less.
By adding less features you'll achieve more.

Why is this paradox so common in the Sea of Software development?

It’s easier to add more than to add less.

It’s easier to rush than run for a long distance.

It’s easier to promise castle in the air than build it.

It’s easier to blame old code in the system than find understanding.

Is it harder to write test before a code than fix a bug within a bug within a bug?

😉

31. January 2011

Amazon S3 – Authenticating REST – bug in documentation

Document Amazon S3 – Authenticating REST says that you should generate authentication signature using following code:

"Authorization: AWS " + AWSAccessKeyId + ":"
   + base64(hmac-sha1(VERB + "\n"
   + CONTENT-MD5 + "\n"
   + CONTENT-TYPE + "\n"
   + DATE + "\n"
   + CanonicalizedAmzHeaders + "\n"
   + CanonicalizedResource))

In documentation you can find following instructions:
The string to be signed is formed by appending the REST verb, content-md5 value, content-type value, date value, canonicalized x-amz headers, and the resource; all separated by newlines.

I followed instructions, but server always responded in the same stubborn fashion:

Code: SignatureDoesNotMatch
Message: The request signature we calculated does not match the signature you provided. Check your key and signing method.

The problem was that my request didn’t contain any AmzHeader and therefore CanonicalizedAmzHeaders was empty string followed by new line. That’s wrong.

If CanonizalizedAmzHeaders is empty string then there MUST NOT be new line!

Correct string for signing in case when AmzHeader is empty:

"Authorization: AWS " + AWSAccessKeyId + ":"
   + base64(hmac-sha1(VERB + "\n"
   + CONTENT-MD5 + "\n"
   + CONTENT-TYPE + "\n"
   + DATE + "\n"
   + CanonicalizedResource))

8. December 2010

BlazeDS and Google App Engine

Official version of BlazeDS still does not support Google App Engine.

If you need solution for this problem, check out project s3blazeds.

23. March 2010

Správa softvérových projektov pomocou Tracu

Dnes si je už ťažké predstaviť softvérový projekt, kde by si vývojári vymieňali zdrojové kódoch na disketách. Správa zdrojových kódov sa presunula do systémov so skratkou SCM (Source Control Management). Z open source variánt je veľmi populárne Subversion a čoraz silnejšiu skupinu priaznivcov si získava aj Git.

Lenže nie len zdrojovým kódom je softvérový projekt živý. V projekte sa objavia rôzne chyby. Riešenie niektorých chýb si vyžaduje aj niekoľko týždňov. Na evidencie chýb a stavu ich riešenia, sú vhodné rôzne ticket systémy. Veľmi známa je napríklad Bugzilla, ktorá vznikala popri projekoch Mozilla Foundation. Tento softvér výrazne prispel k stabilizácii kódu Firefoxu, či Mozilly. Z komerčných si spomeňme napríklad JIRA, ktorú používa napríklad Adobe na bugs.adobe.com.

Dokumentácia je základnou súčasťou projektu. Rôzne poznámky a záznamy sa ukladajú do Wiki, ktorá obsahuje verzovanie. Aj keby niekto niečo omylom zmazal, vždy sa dá vťátiť k starému obsahu. Wiki sú jednoduché a rýchle. Z veľmi populárnych stojí za spomenutie MediaWiki, na ktorej je postavená napríklad Wikipédia.

To však akosi stále nie je úplne všetko, čo by človek potreboval na riadenie projektu. Ešte by to chcelo mať prehľad v tom, čo sa zmenilo v zdrojovom kóde a ktoré tickety boli uzatvorené. Tým pádom sa dajú ľahko sledovať zmeny a ich dopady. Z komerčného sveta má túto schopnosť najviac prepracovanú softvér Polarion.

Prečo použiť Trac, keď existuje toľko nástrojov? Autori Tracu si zvolili ako prioritu minimalistický prístup a to je veľmi podstatné. Zintegrovali dohromady Wiki, ticket systém, správu zdrojových kódov a sledovanie zmien. Trac je veľmi jednoduchý na používanie. Napojí sa na úložisko zdrojového kódu a vy máte okamžite prehľad o tom, čo sa v projekte deje. Pokiaľ vám nevyhovuje nejaká jeho vlastnosť, je ho možné ju odobrať. Trac sa dá jednoducho skonfigurovať, prípadne rozšíriť o nové vlastnosti pomocou pluginov. Trac je možné použiť aj na riadenie projektov, ktoré so softvérom nemusia mať vôbec nič spoločné, napríklad riadenie dodávok Hot Runner systémov na vstrekovanie plastov.

Pokiaľ potrebujete hostovať Trac, tak vám bežný PHP hosting stačiť nebude. Trac je napísaný v Pythone. Je možné ho spustiť ako samostatnú aplikáciu alebo pomocou Apache, tu odporúčam použiť WSGI. Ďalši informácie o možnostiach hostingu, školeniach a vývoji pluginov pre Trac, nájdete na stránkach SinusGear.com.

  • Where’s the fish?

  • Translations

  • Further info

  • Twitter

    Follow @jurajmichalek on twitter.

  • Comments

  • Tags

  • Topics