Muchas naciones, entre ellas México, han recorrido un largo y tortuoso camino para lograr su independencia, defenderse de otros países, y lograr un poco de avance y desarrollo. Toda la sangre y todo el sudor derramados en nombre del país hacen que para mucha gente el concepto de “patria” sea sagrado e intocable, y se llegue a extremos insospechados para defenderlo.
En México hay varios artículos de la constitución y otras leyes que proveen un marco jurídico para garantizar que la patria y sus símbolos sean respetados. Por ejemplo el artículo 33 de La Constitución dice
LOS EXTRANJEROS NO PODRAN DE NINGUNA MANERA INMISCUIRSE EN LOS ASUNTOS POLITICOS DEL PAIS.
La LEY SOBRE EL ESCUDO, LA BANDERA Y EL HIMNO NACIONALES dice:
Los particulares podrán usar la Bandera Nacional en sus vehículos, exhibirla en sus lugares de residencia o de trabajo. En estos casos la Bandera podrá ser de cualquier dimensión y con el escudo impreso en blanco y negro. El particular observará el respeto que corresponde al símbolo nacional y tendrá cuidado en su manejo y pulcritud.
Estas leyes que suenan completamente razonables han sido sin embargo tergiversadas por el actual gobierno de México. Sobre el mismo sobran expletivos pero me los voy a ahorrar, no vaya a haber una “ley para proteger la imagen del gobierno contra víboras y tepocatas” en la cual vayamos a caer.
En lugar de eso me voy a remitir a los puros hechos. Primero, “El gobierno mexicano investiga si el cantante hispano-francés Manu Chao violó el artículo 33 de la Constitución mexicana, que prohíbe a los extranjeros inmiscuirse en asuntos políticos al hablar de terrorismo de Estado“. Lo que hizo Manu Chao fue llamar a la matanza de Atenco en 2006 “terrorismo de estado”. Exactamente cómo constituye esto “inmiscuirse en asuntos políticos”, siendo que la declaración se dio en el contexto de un concierto y no corresponde más que a un comentario sin ninguna intención de injerencia en la política o quehacer en México, queda completamente sin explicación. Así pues, el gobierno mexicano busca una “sanción” por un comentario político. Supongo que el siguiente paso será tener micrófonos en todos los restaurantes porque la política es un tema habitual de conversación y es un hecho que el pobre desempeño histórico del gobierno mexicano, y en particular de los gobiernos panistas que azotan con el fuete de su incompetencia al país desde el año 2000, siempre deja mucho de qué hablar, y no siempre en los términos más halagadores.
Desde luego que el gobierno mexicano no dijo ni pío sobre la reciente visita de Hillary Clinton, que obviamente viene a inmiscuirse, no solamente como observadora; tampoco sobre la visita del presidente francés Sarkozy, que fue un escándalo en ambos países por las impropiedades que se cometieron por ambas partes. No, esto se hace contra un artista y no persigue otro fin que dar la impresión de que “el gobierno sí hace algo”.
El otro caso quizá deja un poco más de duda: Empresa editorial es sancionada por violar la Ley sobre el Escudo, la Bandera y el Himno Nacionales, en un video publicado en Internet. Como parte de un “comercial artístico”, alguien portando una bandera de México se roba algo. Desde luego la Secretaría de Gobernación se rasga las vestiduras y se lanza con todo contra la empresa productora del video, que inmediatamente recula y lo retira en medio de profusas disculpas, todo ello no obstante que la ley en cuestión es completamente ambigua y deja a la completa interpretación de (quien más) la autoridad los conceptos de “respeto”, “manejo” y “pulcritud”.
De nuevo es aplicar criterios distintos para alcanzar un impacto mediático y una impresión de “estamos trabajando”. La bandera de México se ha visto en infinidad de lugares y personas que cometen crímenes, la pregunta es, ¿por qué la SG no persigue a los asaltantes que visten ropa con banderas de México?
La conclusión que se puede sacar de estos dos artículos es la de una desesperación por parte del gobierno, que incapaz de obtener resultados en los rubros realmente importantes (seguridad pública, economía, migración, derechos humanos) queda reducido a encontrar estas “leyecitas” obscuras y cuyo fin, quizá alguna vez loable, se utiliza ahora para coartar la libertad de expresión y para dar al gobierno algo qué hacer, contra gente legítima y honesta, en lugar de dedicarse a combatir a los verdaderos criminales.
BerryUnitConverter has been released. Featuring conversions for pennyweight, micrometers and millimeter (can’t believe I’d forgotten that one). Get it at the usual place.
El secretario de hacienda de México, Agustín Carstens, ha hecho un pésimo trabajo y por lo tanto es uno de los funcionarios más odiados en el país, al grado de que, al inaugurar el mundial de beisbol en México, se llevó una rechifla de 5 minutos. Aún así tuvo la valentía de lanzar la pelota inicial de este importante evento deportivo. Y digo “valentía” porque, a pesar del odio que le tienen, Carstens jamás ha dudado en exhibir su obesa figura en cuanto evento público se presenta.
Carstens es el estereotipo mexicano del detestable “banquero” con nariz de cerdito, obeso pero siempre en un elegante traje. Mucho se le ha criticado sobre su gordura, y sobre cómo es un insulto que el secretario de hacienda exhiba semejante masa corporal, evidencia de un comer abundante, en un país donde la lucha diaria para muchos es simplemente el conseguir alimento para subsistir diariamente.
La decencia debe ser característica de un político, pero en México ya no les queda ni decencia ni vergüenza: más allá de su “excelente” trabajo hundiendo al país en una crisis de inseguridad y económica, solamente se regocijan “viéndole el trasero” a Carla Bruni, de visita oficial en México. Qué pena me da ser del mismo país que estos “marranos” (con perdón de Carstens) a los que solamente les faltaba chiflarle a la primera dama francesa.
La Jornada reporta que la Bolsa Mexicana de Valores cambiará su horario de operación del 9 de Marzo al 3 de Abril, fechas en las cuales la diferencia de horario de verano entre Estados Unidos y México crea un defasamiento inesperado de una hora. El mercado bursátil mexicano abrirá a las 07:30 horas, tiempo local y cerrará operaciones a las 14.00 horas.
Aquí queda de manifiesto el borreguismo y necedad de seguir con el cacareado horario de verano; Esta medida inútil en México se implementó en un momento en el cual el partido en el poder tenía “capital político” para impulsar dicha medida, a un altísimo costo de descontento social.
Las causas reales del “horario de verano” es para tener paridad con Estados Unidos, para operaciones comerciales. Nótese que ni siquiera en Estados Unidos se le tiene completa fe al susodicho horario, pues en Arizona no se implanta esta medida, y como siempre México (Sonora) donde le conviene tampoco lo implementa (¿no que era para ahorrar energía? ¿por qué no se aplica parejo?).
Ahora, ante la imposibilidad de modificar esta medida por la endeble posición del PAN en las cámaras, y la cercanía de las elecciones, para ajustarse al cambio que el año pasado se dio en Estados Unidos, donde otro necio (George Bush) decidió ampliar dos semanas a cada lado el horario de verano, la BMV se deja de tapujos y al cambiar sus horarios de trabajo, levantándose una hora más temprano con tal de ganar dinero como la ristra de avaros sedientos de dinero que son, nos da a los detractores del horario de verano la razón, para decirles lo siguiente:
“SI QUIEREN TENER UNA HORA MÁS DE LUZ, LEVÁNTENSE MÁS TEMPRANO, BOLA DE FLOJOS”.
Y como lo prueba la BMV, cuando hay interés de por medio, bien que se puede. No se vale que al resto de la gente nos obliguen a levantarnos más temprano (sí, el flojo soy yo, ¡y qué!)
Risk is a constant for today’s companies. Google, Microsoft, Apple, IBM (well, maybe not so much with IBM), Toyota… they all take risks developing and testing new technologies. The risk lies in the amount of money and resources they devote to creating new technology. When said technology involves keeping a team to upgrade, fix and evolve it, the risk multiplies. The risk is mitigated if the technology is successful and provides a reasonable return on investment. Indeed, the whole point of “risking” your resources is so that created technology might prove a commercial success and yield the company many times the investment.
However there are times when things don’t go quite right and a company has to “cut its losses” and scrap a project or product altogether. Google has done it, IBM has done it (PS/2), Apple has done it (the Lisa). Microsoft has done it many times, and in doing it yet again they help me make my point today.
“Users of Microsoft’s 3D simulation platform have been rocked by news that the company has laid off off or reassigned most of the of the platform’s developers“, reads an article at thestandard.com. Microsoft has a 3D simulation platform? Well yes, as part of their venerable Flight Simulator product (has the honor of being the first piece of commercial software I bought, circa 1988), it seems they had spawned off a 3D simulation product. Microsoft’s announced enhancements to the platform meant it was going to be targeted at markets such as real estate, city planning, and law enforcement. And developers for these industries were thrilled, and had already begun work on applications using Microsoft’s ESP technology.
Maybe the reason is the current economical climate; whatever, Microsoft seems to be shedding a lot of “non-essential” teams, among them the Flight Simulator team, followed closely by the ESP team. Streamlining seems like a sensible tactic for a profit-oriented business, right?
Users don’t seem to think that way.
“As a commercial developer who is currently working on two major ESP projects I can’t begin to express the concern I have hearing this news. I look forward to hearing from Microsoft as to the future plans for ESP”
“I’m gutted that this is probably no longer going to see the light of day. It looks like there were a lot of people working really hard to build a revolutionary product. It must be totally crushing for them to see all that work go to waste.”
‘my company used it for a solution and invested time and money into getting it approved and purchased. Microsoft sure handed us a raw deal for taking a gamble on their platform.’
Anyway, my point with all this is that proprietary software is a bad idea. Microsoft is the embodiment of all we loathe in a software company; however much they talk about being business partners, the current schism is a sample, a reminder that, should your business no longer be profitable to them, Microsoft won’t hesitate to hang you out to dry. The bottom line is all that matters to them. And their use and selling of proprietary technologies means that, should the worst happen, you’re left with no recourse but to throw all your investment away and start anew with some other product, hoping that that other company won’t do the same to you.
Rather than risking this, why not go free software? Things would be very different if Microsoft opened up ESP; it’s not like they’re going to profit from that anymore. That way companies with a reasonably talented developer pool might take the project forward, as has happened with many open-sourced, formerly-commercial products (Blender comes to mind). That’s a company that protects your investment. Microsoft just ripped them off, plain and simple.
For all those companies developing products using ESP, it’s likely their business is not primarily software development. Thus they chose to go with a commercial, specialized software vendor. And look what happened to them! Even if they don’t have the in-house expertise to develop something like ESP, a pooling of resources or funding a non-profit tasked with developing and freely releasing an ESP substitute would make sense. A law enforcement organization sees no competition from a real estate, architecture or urban planning company, so what’s it to them if they use the same, freely-developed product on which to base their custom offerings? (look at Unreal Engine and what ID Software does with their Quake FPS engines; also, ID software has open-sourced their old releases, which rings true with what I’m ranting about here). Again, as long as it’s not their core business, there’s no problem with them cooperating in the creation of a component for their main project.
Misery loves company and at least, through heated discussion in MSDN, those users who were wronged by Microsoft have come in contact with each other and might, if they have the vision to venture into the world of free software, have an opportunity to make sure this never happens again to them or others wanting similar technologies.
OK, so I happily hack away on my Rails application on a Debian box with Ruby 1.8.7 and Rails 2.1.0, and then deploy to a Fedora 8 server with Ruby 1.8.6 and Rails 2.2.2. All of a sudden a particular release causes Passenger to spit an error page on application startup. The key error was:
undefined method \`empty?’ for nil:NilClass
Now I’m combing all over my code to find where I’m using “empty?” but I’m sure it’s somewhere that gets run on application startup, otherwise it wouldn’t show up when Passenger tries to start the application. But I find nothing and I’m about to shoot myself.
Following the trace I end up hacking Ruby’s erb.rb file, as there appear to be some bugs in this; indeed, this one from 1.8.6 is different from what I have in 1.8.7, so the app runs fine here. I try to fix instances where empty? might get called on a nil object, but after fixing 3 of these the app stops responding altogether. Hmm, so something, somewhere, depends on erb.rb’s buggy behavior. Best to leave it alone.
HOWEVER, on the deployment server, running with script/server works fine; it’s only when using Passenger that things blow up.
Finally I find this thread that points me in the right direction:
One of the users dropped some
JPEG files into the /app/views/static directory, and that seems to be
jamming up the works with 2.2.2.
Indeed, as part of my last set of revisions, I’d left several samples of static content I was converting into dynamically generated pages; sure enough, they included JPGs and whatnot. Just to be safe, I decided to move the entire directory into public to avoid any problems.
Now the app runs just peachy and I only wasted 2 hours chasing down this bug. Thanks to the guys at Nabble!
Eventually it all boils down to this Rails bug reported at Lighthouse. So hopefully it’ll be fixed soon. In the meanwhile, keep binary files out of your views subtree.
I’m attaching the entire Passenger error page, in case it’s useful to anyone. Mainly so that Google can find it faster for other people with this problem.
Ruby on Rails application could not be started
These are the possible causes:
-
There may be a syntax error in the application’s code. Please check for such errors and fix them.
-
A required library may not installed. Please install all libraries that this application requires.
-
The application may not be properly configured. Please check whether all configuration files are written correctly, fix any incorrect configurations, and restart this application.
-
A service that the application relies on (such as the database server or the Ferret search engine server) may not have been started. Please start that service.
Further information about the error may have been written to the application’s log file. Please check it in order to analyse the problem.
-
Error message:
-
undefined method `empty?’ for nil:NilClass
-
Exception class:
-
NoMethodError
-
Application root:
-
/var/www/spcccdec/releases/20090227005857
-
Backtrace:
-
|
/usr/lib/ruby/1.8/erb.rb
|
478
|
in `scan’
|
1
|
/usr/lib/ruby/1.8/erb.rb
|
524
|
in `compile’
|
2
|
/usr/lib/ruby/1.8/erb.rb
|
691
|
in `initialize’
|
3
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/template_handlers/erb.rb
|
51
|
in `new’
|
4
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/template_handlers/erb.rb
|
51
|
in `compile’
|
5
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/template_handler.rb
|
11
|
in `call’
|
6
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/renderable.rb
|
21
|
in `_unmemoized_compiled_source’
|
7
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
57
|
in `compiled_source’
|
8
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
25
|
in `__send__’
|
9
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
25
|
in `memoize_all’
|
10
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
22
|
in `each’
|
11
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
22
|
in `memoize_all’
|
12
|
/usr/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/memoizable.rb
|
17
|
in `freeze’
|
13
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
88
|
in `reload!’
|
14
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
102
|
in `templates_in_path’
|
15
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
100
|
in `each’
|
16
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
100
|
in `templates_in_path’
|
17
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
86
|
in `reload!’
|
18
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
78
|
in `load’
|
19
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
109
|
in `load’
|
20
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
109
|
in `each’
|
21
|
/usr/lib/ruby/gems/1.8/gems/actionpack-2.2.2/lib/action_view/paths.rb
|
109
|
in `load’
|
22
|
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb
|
357
|
in `load_view_paths’
|
23
|
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb
|
182
|
in `process’
|
24
|
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb
|
112
|
in `send’
|
25
|
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb
|
112
|
in `run’
|
26
|
./config/environment.rb
|
13
|
|
27
|
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb
|
31
|
in `gem_original_require’
|
28
|
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb
|
31
|
in `require’
|
29
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb
|
254
|
in `preload_application’
|
30
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb
|
214
|
in `initialize_server’
|
31
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/utils.rb
|
179
|
in `report_app_init_status’
|
32
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb
|
203
|
in `initialize_server’
|
33
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
166
|
in `start_synchronously’
|
34
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
135
|
in `start’
|
35
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
112
|
in `fork’
|
36
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
112
|
in `start’
|
37
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/railz/application_spawner.rb
|
179
|
in `start’
|
38
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb
|
222
|
in `spawn_rails_application’
|
39
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb
|
217
|
in `synchronize’
|
40
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb
|
217
|
in `spawn_rails_application’
|
41
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb
|
126
|
in `spawn_application’
|
42
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/spawn_manager.rb
|
251
|
in `handle_spawn_application’
|
43
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
317
|
in `__send__’
|
44
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
317
|
in `main_loop’
|
45
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/lib/passenger/abstract_server.rb
|
168
|
in `start_synchronously’
|
46
|
/usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/bin/passenger-spawn-server
|
46
|
|
A note on Slashdot says “[Nintendo] has requested help in dealing with piracy overseas, both from the US government and from several other countries in particular. China, Korea, Brazil, Mexico, Spain, and Paraguay are listed as the greatest contributing nations to piracy of the company’s products.”
Nintendo needs to realize that there’s no way piracy will stop in Mexico unless they lower their prices. A Wii is almost twice as much in Mexico as it is in the USA, costing the equivalent of over 350 dollars here. Games aren’t much cheaper. And Wii Points cards are also twice as expensive here.
It’s also pretty hypocritical of Nintendo. Wiis are plentiful in Mexico, even at times when news of shortages elsewhere were common. The reason is that, since the Wii is so heavily marked up, Nintendo does profit more by selling here in Mexico than in the USA (similar to how they diverted shipments to Europe because higher prices there gave them more profits). However, while there are those mexicans (like me, sadly) who would indeed pay twice the price for the console, which is very convenient for Nintendo, the vast majority of the population can’t afford those prices. So they resort to piracy in order to get their games; buying stolen for their consoles; and (worst of all) buying an XBox instead, because the XBox is 60% the price of a Wii here in Mexico.
This will continue, however hard Nintendo tries to push mexican authorities, because they don’t care; Mexico is a land of impunity, where drug dealers get away with murdering and torturing, often in broad daylight. Obviously the authorities have their hands full and no time for a game company crying wolf because their products are getting pirated. And anyway, it’s too easy for the “pirates” to bribe the police officers who come to seize their goods and try to arrest them; they, too, are starving and would welcome a few thousand pesos in bribes (or, why not, a shiny new stolen Wii for their kids).
So if Nintendo wants to reduce pirating of their products in Mexico (they can’t stop it altogether), they need to make sure their prices are more in line with what they charge internationally (The USA, specifically). That way more people can afford them legitimately, and there will be less incentive for piracy. However, culturally, legally and politically, the complete erradication of piracy in Mexico is an impossibility. Just ask Microsoft.
I’ve written before about how people in Mexico have zero road culture, which leads to a complete breakdown of road infrastructure. A lot of this infrastructure’s correct operation depends on people abiding by the law. Yet most people do not. Usually the consequences are from nil (parking in a handicapped space for a moment, leaving your car double-parked, parking in front of a house’s garage) to a relatively minor fine (parking illegally and THEN getting towed because the tow truck happened to be nearby).
However, when physical security of moving vehicles is dependent on the assumption that people will respect the law, things do indeed break down.
The metrobús is a Bus Rapid Transit system, which opened in 2005 in one important Mexico City avenue, and has enjoyed (in my opinion) great success, reducing transport times, improving traffic flow for private vehicles, and getting rid of dangerous Peseros along Insurgentes avenue. Everybody in Mexico knows Peseros are the worst offenders when it comes to traffic violations, where they blatantly run red lights, invade lanes, and generally do what they please without regard for others. So their sole disappearance was a blessing.
The price to be paid for this was that, since the metrobus runs on central lanes, left turns are forbidden along the avenue’s 26-km length. The reason is obvious: at the very least a significant disruption of traffic might occur if the bus has to stop for a car that’s trying to left-turn. At worst, the metrobus, a double-length behemoth, might hit another car with deadly consequences.
It’s been 3 years of the Metrobus operating, and this year a second line (running along eje 4 sur) was opened. This has caused an uproar because it appears this line has been misdesigned, creating several “death traps” and spots where, due to lack of space, cars and pedestrians have a tough time getting through. This has led to 18 accidents since the new line opened.
Some asshole in the government who needs urgent math lessons said that “98% of accidents involving the metrobus are due to private car driver’s imprudence”. For starters, 98% of 18 is 17.64, and assigning partial blames is absurd.
Anyway, what’s indeed clear is that most of the accidents are due to lack of culture by drivers. The all-too-common notion that “nobody wants to have an accident and if I just swerve violently in front of someone they’ll stop and swear at me but I’ll get my way” fails when the “someone” is a 15-ton monster traveling at 60 km/h with 30-meter stopping distances.
Sometimes, then, images are worth a thousand words, so I’ll leave you with the conclusion that while it’s necessary to guarantee that people operating a car need to have a minimum of road education, it’s also not going to happen because the “it’s ok just this one time” mentality rules, and as long as we’re giving driving licenses to anyone without a driving test (right, in Mexico there are no driving tests, you just pay for your license and you get it) things like this are going to happen. I also leave you with an eye-opening video of exactly whose fault it was for the accident, a picture of which is at the top of this message.
I just uploaded a new version of BerryUnit Converter. Version 1.5 fixes some conversions that were wrong (sorry!) and adds a few new ones.
Get it at the usual place.
A new version of BerryUnitConverter is up. This one adds data units as well as Blackberry Storm compatibility. Let me know of any problems. Get it at the usual place.