Friday, June 1, 2012

Il-ħarja fuq ir-ramel

Ftit ta' żmien ilu, l-ministru tas-saħħa bagħat ritratt lit-'Times of Malta online' ta' ħarja ta' kelb fuq ir-ramel. U qalilna kemm hu totalment iddisgustat, u kif għandu raġun li l-klieb mhux posthom fuq ir-ramel. Ma noqogħdux nagħmlu bosta paroli, il-bajjiet bir-ramel saru kollha swimming zones u għalhekk, illum kelb - skond il-ministru - qatt ma għandu jgawdi r-ramel ma' sidu. Mhux qed ngħid li sid dak il-kelb għamel tajjeb, imma skond dan il-ministru, din id-daqxejn ta' ħarja ser twassal għal bosta mard u tniġġiż. X'hinu? Din id-daqxejn ta' ħarja? Ħarja li probabilment bis-sħana, bil-melħ u bir-ramel, laħqet nixfet minn x'ħin ħa ir-ritratt u bdew jiktbu bosta aktar bluha ta' kummenti fuq l-istess webpage li semmejt qabel.

U jien nsaqsi, fejn kien l-onorevoli jgħidilna fuq is-saħħa, il-bacteria u t-tniġġiż tal-baħar, meta għal snin twal ħafna, konna ilna nitfaw il-baħar dranaġġ mhux trattat? Ħafna u ħafna dranaġġ li kien ikun fih minn kollox inkluż, b'mod partikolari ħafna u ħafna eskrimenti umani, li jkun fihom parassiti u bacteria li tgħix fuq l-umani (u għalhekk iktar perikoluzi).

U nsaqsi ukoll, fejn kien l-onorevoli meta kont tara bosta jistadu 'l-barra mix-Xagħjra ta' Haż-Żabbar? Dak il-ħut mhux l-umani kienu jikluh? U dak l-istess ħut mhux dak li jarmu l-umani kienu jieklu? Dak ma kienx ta' periklu għas-saħħa?

Ma sar xejn, iżda kellna nsiru parti minn l-UE biex ta' Brussels jgħidulna xi rridu nagħmlu u b'hekk jibdew jinbidlu l-affarijiet.

Ftit ta' żmien ilu kien hemm audit fuq is-servizzi tas-saħħa u r-riżultat kien li għal dak li qed inħallsu għanda nieħdu sevizz bil-bosta aħjar. Dan l-awdituri fi ftit jiem ndunaw (u għalija, ikkonfermaw) b'dak kollu li tisma mingħand Ċikku l-Poplu, dwar nuqqas ta' servizz u korruzjoni li hemm istitwita fis-sistema tas-saħħa Maltija. Meta dan il-kliem jgħidu (miskin) Ċikku l-Poplu, dan jiġi mwarrab. Iżda issa li qaluh l-awdituri, x'għamel il-ministru? X'għamel issa li ma setax jinjora lil dawn l-awdituri li huma ta' livell ogħla minn Ċikku l-Poplu...

Ħa għalih! U miskin! Heqq, għalmenu ma ġitniex tiswa flus, iżda kif jgħidu minn jieħu għalih: iħallas!

Friday, March 30, 2012

Government austerity

Brussels demands that governments in Europe and particularly in the Euro zone to adopt austerity measures to bring down national deficits to `manageable levels`.

What if instead our Governments do the right thing and instead of turning on us, they turn on those greedy people in Brussels? Why don't they do the right thing and cut the funds to all MEPs and all EU institutions?

All this EU funding issue is turning back on us and we are all footing the bill. Funding is the lifeline of those greedy people at Brussels/Strasbourg. Promoting EU funds is guaranteeing a bountiful future for Brussels & Co. while handing us a piece of the (rotten) carrot.

You represent us and not Brussels & Co.

Sunday, March 25, 2012

Greed.

Greed is the reason why communism failed and so did capitalism. Greed is why Osama Bin Laden won and the west actually lost.

Soon after the twin towers fell down, corporate greed took over and the world has not yet recovered.
All the famous revolutionaries thought to combat for one ideology against the corruption of the others' idealogical. They were effectively waging war against greed which then engulfed them and revolutionaries such as Castro, and Mao became part of these greed and kept on clinging to the seat of power.

Friday, September 9, 2011

Which route planner.

I clicked the same route on various route planners available online and almost all gave different results. Here's a summary for the route Pozzallo - Zafferana Etnea (both in Sicily). Scores are 0-5 (5=best).












 viamichelin.com maps.nokia.commaps.google.com maps.yahoo.com maps.bing.com routes.tomtom.com
Ease to reach planner5 5 5 5 5 4
km151137.8151143.189.1mi (no quick possibility to switch to km) 151
time (hr:min)1:53 1:38 2:031:51 1:45 1:53
Offers alternative routes/modesYes Yes Yes No Some simple route modes No
Suggest location while you type Yes Yes Yes No No No
maps info and readability 5 4 4 4 1 4
Route calculation speed 4 4 5 44 4

Saturday, August 27, 2011

What Nokia needs

Nokia still makes the best hardware, and also Symbian is a good product. But what Nokia does not really have is charisma. It lost most of its charisma and now they've put a super (ex-Microsoft) Nerd as its CEO.
Apple did not really offer anything new to the mobile world, in essence, the iPhone and app store is what Nokia already had for years, but Apple had Steve Jobs charisma and everything looked unexplainably wow and new.
Now Nokia is still searching for its new role, and it is doing miserably and deliberately giving way to the competition.
Nokia is still not sure what it is offering and so it is offering an insensibly wide range of products, too much diverse, too much out of focus.
If Nokia is going to stick to just hardware, or both hardware and software, is still truly unclear. Nokia spent money developing a Linux mobile system (meeGo), and now it is thinking of using a Nerd's tool: Windows. All this, after successfully using and developing Symbian for so many years!

Someone said that no decision is worse than a bad decision, and Nokia is just doing both!

What if Nokia designed the new standard for hardware for mobility? Something like IBM did back in the 70s and 80s with their PC and software developers have a standard platform on which to work?
What if, for example we had the gorgeous C7 with a microSD slot and a boot loader and you can plug in any OS you like... be it Symbian, Android, Ubuntu, Windows and so on?

Sunday, April 17, 2011

my first symbian application

and also my first Python script.


PyS60 is cool. You can create a script and run it on your Nokia. Simple. Then I learnt that there are tools like ensymble (from google code) to create a sis file to install and distribute the application.

I wanted a quick and simple unit converter. Although SI units are used by almost all countries in this world there are still people who use the awkward system of feet, psi, ounces etc. Thanks to the French and their metric system, the SI units are more readable and more easy to understand. I wrote this script for my Nokia to convert from various units. I also included old Maltese system of measurements.

To run on your nokia, just install PyS60 to your nokia - from https://garage.maemo.org/frs/?group_id=854&release_id=3264 - and copy the script to your memory card. I use Linx and obex to copy th files using bluetooth: which is much more handy.



import appuifw

convCat = [u"Length", u"Area", u"Volume", u"Weight", u"Temperature", u"Pressure"]


cont = 1
while cont:
# reset convCat
convUnits = []
convCalcToEsp = []
# get Category
convCatIndex = appuifw.popup_menu(convCat, u"Select a category")
if convCatIndex == 0:
# length, use m as 'Esperanto'.
convUnits = [ u"thou (th)", u"inches (in)", u"feet (ft)", u"yards (yd)", u"miles (mi)", u"knots (kt)", u"mm", u"cm", u"m", u"km", u"qasba", u"rod", u"fathom", u"league"]
convCalcToEsp = [0.0000254, 0.0254, 0.3048, 0.9144, 1609, 1852, 0.001, 0.01, 1, 1000, 2.096, 5.0292, 1.853184, 4828.032]
elif convCatIndex == 1:
# Area, use m2 as 'Esperanto'
convUnits = [ u"sq in", u"sq ft", u"sq yd", u"sq miles", u"sq knots", u"mm\u00B2", u"cm\u00B2", u"m\u00B2", u"km\u00B2", u"hectares", u"acres", u"tumoli", u"qasba kwadra"]
convCalcToEsp = [0.000645, 0.092903, 0.836127, 2589988, 3429904, 0.000001, 0.0001, 1, 1000000, 10000, 4046.87, 1124.13, 4.391]
elif convCatIndex == 2:
# Volume, use m3 as 'Esperanto'
convUnits = [ u"cu in", u"cu ft", u"cu yd", u"UK gal", u"UK quart", u"UK pint", u"fl oz", u"US gal", u"US quart", u"US pint", u"mm\u00B3", u"cm\u00B3", u"m\u00B3", u"litre (l)", u"centilitre (cl)", u"millilitre (ml)", u"cup", u"tablespoon", u"teaspoon", u"Oil barrel"]
convCalcToEsp = [ 0.000016387, 0.028316847, 0.764554858, 0.0045461, 0.0011365, 0.0005682, 2.841306E-05, 0.0037856, 0.0009464, 0.0004732, 0.000000001, 0.000001, 1, 0.001, 0.00001, 0.000001, 0.000236588, 0.000014784, 0.000004929, 0.15898 ]
elif convCatIndex == 3:
# Weight, use kg as 'Esperanto'
convUnits = [ u"grain (gr)", u"drachm (drc)", u"ounce (oz)", u"pound (lb)", u"stone (st)", u"UK hundredweight (cwt)", u"ton", u"mg", u"g", u"kg", u"tonne", u"ratal", u"wizna", u"qantar"]
convCalcToEsp = [ 0.00006579891, 0.001771845, 0.028349523, 0.45359237, 6.350293, 50.802345, 1016.0469, 0.000001, 0.001, 1, 1000, 0.7938, 3.969, 79.38]
elif convCatIndex == 4:
# Temperature, use C as 'Esperanto'
convUnits = [ u"F", u"C", u"K"]
convCalcToEsp = [ 1, 1, 1]
elif convCatIndex == 5:
# Pressure, Pa as 'Esperanto'
convUnits = [ u"psi", u"bar", u"Pascal (N/m\u00B2)"]
convCalcToEsp = [ 6894, 100000, 1]

else:
# 'back was pressed
cont=0

# check if there's a valid category
if len(convUnits) > 0 :
# check that if I made a programming mistake in arrays.
if len(convUnits) == len(convCalcToEsp):
# ok, hence calc.
convFromIndex = appuifw.popup_menu(convUnits, u"Convert from:")
if convFromIndex >= 0 :
convToIndex = appuifw.popup_menu(convUnits, u"Convert " + convUnits[convFromIndex] + " to:")
if (convFromIndex >=0) and (convToIndex >=0):
conVal = appuifw.query(u"Convert " + convUnits[convFromIndex] + " to " + convUnits[convToIndex], "float")
if convCatIndex == 4:
if (convFromIndex != convToIndex):
if (convFromIndex == 0):
# convert from F to C or K
resVal = (conVal -32) * 5/9
if (convToIndex == 2):
# convert C to K
resVal = resVal + 273.15
elif (convToIndex == 0):
# convert to F
C = conVal
if (convFromIndex == 2):
# convert K to C first
C = C - 273.15
# convert C to F
resVal = (C * 9/5) + 32
# now F is not select, hence conv from C to K or vice versa
else:
if convFromIndex == 1:
resVal = conVal + 273.15
else:
resVal = conVal - 273.15
else:
# no conversion required.
resVal=conVal
else:
# if not temperature, then use the following equation.
# appuifw.note(u"calc: "+ str(conVal) + " x " + str(convCalcToEsp[convFromIndex]) + " / " + str(convCalcToEsp[convToIndex]), "info")
# dummy = appuifw.query(u"calc: "+ str(conVal) + " x " + str(convCalcToEsp[convFromIndex]) + " / " + str(convCalcToEsp[convToIndex]), "query")
resVal = conVal * convCalcToEsp[convFromIndex] / convCalcToEsp[convToIndex]
# output
cont = appuifw.query(u" " + str(conVal) + " " + convUnits[convFromIndex] + " = " + str(resVal) + " " + convUnits[convToIndex] + "\n\nConvert another?", "query")
else:
appuifw.note(u"Internal error (" + str(len(convUnits)) + "/" + str(len(convCalcToEsp)) + ")", "error")



Here's the script - then a sis may follow!