Ha llegado este COVID para darnos muchas lecciones, además de poner todo de patas arriba. Que no nos podemos mover y que tal y cuál. Alguien me ha dicho, antes de que empiece este encierro, que es mejor estar en el lugar que uno siente que es su casa al saber que estoy aquí, donde quiero estar y donde hago lo que me aconsejaste cuando ambos aprendíamos de cada uno sobre esta movida de hacer empresa: que me dedique a lo mío, a programar. Por esto, te ha gustado la idea de que me vaya a estudiar ciencias de la computación, aunque pareciese una irresponsabilidad el dejar la empresa que había iniciado; y me apoyabas cuando volvía a mi ciudad para andar de hotel en hotel, como si no fuese la mía. Ambos sabíamos que no era para buscarme un futuro laboral. De hecho, has sido una de las pocas personas que jamas me ha sugerido eso, me vaya como me fuese financieramente.
Este eras tú, un amigo que no dejaba pasar tocar el aspecto personal, así la reunión, llamada o situación haya sido por el motivo que sea. Alguien que apoyaba a sus amigos en sus movidas, convocando a otras personas a las que uno solo no habría podido hacerlo y poniendo siempre la buena onda para que aquello crezca, así seamos cuatro gatos al inicio. Alguien que conectaba gente y intentaba siempre apoyar desde su posición a lo que hiciese falta en diferentes ámbitos sociales. Así ha sido como empezamos a pulular Café Z con nuestras portátiles para trabajar en nuestras movidas, tú “Tejiendo redes” y yo a punto de empezar a perder dinero con la idea de ser empresario, a la vez que intentaba descifrar alguna clave WiFi. Fíjate que nunca has dejado de hacerlo y lo que has logrado ha sido eso con el estudio, crear tu propia red en lugar de ser adquirido por alguna marca internacional, y solo a algunos metros de este café que ya no está más.
No sé si alguien leerá esto. No sé si alguien escribe blogs este 2020, de hecho. Me ha animado a escribir por ser lo que corresponde y porque sé que a mucha gente que te ha conocido esto les ha tomado por sorpresa y no hemos podido despedirnos por este virus de marras, y no sabemos qué más vendrá. Lo importante es que mucha gente dará fé de lo que digo y más. Por esto tengo la certeza de que aunque tus niños hoy son pequeños estarán orgullosos de su padre, porque la esencia y el legado de las personas como tú has sido permanecen.
Gracias por apoyarme en mis movidas y confiar en mi, tanto a nivel personal como profesional. Por hacerme ver que, aunque uno no lo note, también puede enseñar cosas útiles que te han servido. Por últimamente reñirme por llevarlos a comer a lugares “fichos” donde “sirven poco” y no a Don Mario, que sirve bien, jaja. En fin, cuantas cosas compadre. Creo que este episodio también es otra lección de la vida y recibo el mensaje.
The post Rafael first appeared on an act of subversive playful cleverness. ]]>Durante la vida de una persona son dos o tres instituciones las que definen la conformación de sus redes sociales. Empieza en la familia y comunidad religiosa, luego viene el colegio, o colegios, si has seguido estudios superiores pues estos, y finalmente tu centro de labores. Es desde allí y gracias a ellas que tu red se expande. De esta red depende en gran parte tu futuro profesional e incluso personal.
A finales de los años 90 e inicios del 2000 Internet generó en la vida de muchos una nueva plataforma desde la cual consiente o inconscientemente uno tenía la posibilidad de expandir su red social. No es esta red social que ahora vemos como una aplicación o sitio web. Es la red social que a muchos de nosotros nos ha permitido iniciar y conservar amistades, recuperar algunas, encontrarse con otras tantas, emprender proyectos, y sin más, solamente conocer gente con la que jamás te toparías por no ser parte de tu entorno. Más allá de la gente de los barrios donde he vivido, los compañeros de los colegios donde he estudiado, el entorno familiar y religioso; mi red estaría limitada a eso más el ámbito laboral. Personalmente puedo decir que buena parte de mis contactos los he conocido gracias a Internet y aún frecuento o tengo contacto regular con varios de ellos.
Internet tiene el potencial de dar la oportunidad de conocer gente con puntos de vista similares o mejores a los tuyos. Gente llamada común que es la que hace que nuestros países se muevan. Gente que más allá de sus actividades económicas tiene otros intereses, de los que muchas veces son los mayores expertos, y que no quieren la exposición mediática de la que ahora mucha gente vive. Gente que es como tu o como yo, que escribo esto desde mi casa al pie de la cordillera blanca en los andes peruanos.
Las llamadas redes sociales actuales tienen la limitante de que solo han logrado digitalizar tu red existente. Es decir añadir a tus amigos/as, si te apetece a tus familiares (asumiendo las consecuencias), a tus ex/compañeros de trabajo (bajo el mismo riesgo) y alguno/a que otro/a ex y sus amigos/as. La conversación del día con ellos es sobre lo que ha publicado tal o cual. Por supuesto, también puedes “seguir” a otra gente y tener la ilusión de que son parte de tu red, pero eso es como encontrarte con un actriz de TV en un bar y pensar “a esta la conozco” o creer que existe una amistad entre el locutor de radio y su oyente. Decadente, si no peor.
Imagina a un chico de 17 años que vive por aquí. Hace no muchos años había que levantarse a las 4:00 para ir a la ciudad más cercana pues solo había dos o tres autos para hacer ese viaje cada día. Al chofer que salía a las 6:00 le decían el tardón. Para expandir su red este chico tendría que viajar constantemente y no solo eso, sino que habitar en las otras ciudades por algún tiempo. Nadie establece relaciones en base a viajes eventuales o de pasada. También podría utilizar la correspondencia postal como muchos han hecho durante años con personas en otras ciudades. Imaginen ahora a este chico conectado a Internet y conociendo gente que comparte sus ideas e intereses, que no encuentra en su propia ciudad. Imagina a esas personas, antes desconocidas, compartiendo ideas a esta red que no tiene fronteras.
Las últimas semanas he lanzado un club. . Vamos a rescatar esa capacidad de Internet de hacer que gente fuera de tu red comparta sus puntos de vista, exponga sus ideas, o simplemente nos cuente qué está pasando en Internet, de lo que no te enteras porque tu red, seamos honestos, es aburrida. El club es solo para miembros por lo que tus publicaciones no serán alcanzadas por un buscador. Los miembros pueden publicar bien de forma anónima o con un seudónimo (¡como antes!) y lo mejor es que es un software moderno que funciona bien en el móvil.
¿De qué está hablando la gente en Quinpu? Pues de la próxima modelo estrella de Internet que solo tiene 17 años, de la Startup de Silicon Valley que tiene oficinas oficiales en Ayacucho, de las fintech regionales, de como ganar dinero en Internet, de las mentiras que han contado los enemigos de España sobre América, de cómo se preparan los millonarios de la tecnología y finanzas para el Apocalipsis; entre otras cosas más. El club jamás pondrá publicidad para financiarse ni pedirá donaciones a sus miembros. Eso lo dejamos para los pobres como los que operan las guaridas de marxistas que seguramente has visitado alguna vez.
Por lanzamiento todos los lectores de este “post”, que será el último en este blog pues solo estoy escribiendo en , están invitados al club y pueden registrarse. Después, el registro será solo con invitación de miembros existentes. Existen diferentes niveles para los miembros y los que participan más reciben mayores roles, como el ser moderadores y poder invitar a otras personas. Si conoces alguien que consideres sea de aporte interesante ¡únete e !
«Limpias, pues, sus armas, hecho del morrión celada, puesto nombre a su rocín, y confirmándose a sí mismo, se dió a entender que no le faltaba otra cosa, sino buscar una dama de quien enamorarse, porque el caballero andante sin amores, era árbol sin hojas y sin fruto, y cuerpo sin alma.»
The post Cuerpo sin alma first appeared on an act of subversive playful cleverness. ]]>
En el mundo, especialmente en Estados Unidos, se ha venido debatiendo acerca de la regulación de este tipo de vehículos no tripulados desde hace algunos años. En varios ha existido polémica al respecto. La propia Federal Aviation Agency (FAA) ya y establece la necesidad de y permiso (patente o placa), bajo ciertas características, para poder operarlos.
El objeto de nuestra ley hace referencia, en su artículo 1ro, al artículo 8 del que señala que las aeronaves sin piloto no deben volar sobre los estados miembros sin autorización previa.
La presente ley tiene por objeto desarrollar el artículo 8 del Convenio de Chicago, sobre aeronaves sin piloto, para establecer el marco normativo que regule la operación de aeronaves civiles pilotadas a distancia.
La ley señala como actividades permitidas para este tipo de vehículos:
Al igual que en otras latitudes se crea un registro y se establece la necesidad de un permiso para la operación de estos vehículos. El permiso lo debe otorgar la (DGAC) del Ministerio de Transportes y Comunicaciones (MTC), y puede ser solicitando tanto por personas naturales como jurídicas. Este permiso es necesario tanto para fines comerciales o no comerciales. Se menciona que para ello esta entidad deberá proporcionar una serie de requisitos de acuerdo al peso del equipo, similar al esquema de la FFA americana.
Sin embargo, no está permitido el uso de los aeronaves operadas a distancia cuando:
Personalmente me parecen correctas las prohibiciones. Es importante el tema de la privacidad que, de hecho, ya fue planteada en otro proyecto de ley: . El problema está en el segundo punto puesto que su aplicabilidad y vigilancia es muy compleja, sino imposible, dado que es una práctica común y una de sus mayores aplicaciones de los “drones” nuestro medio. ¿Quien estará a cargo de asegurar el cumplimiento de la norma? ¿Cómo identificamos una aeronave operada a distancia? ¿Tendrán una placa, patente o licencia? ¿Qué ocurre cuando una persona se ve afectada en su privacidad y desea plantear una denuncia y proceso civil? ¿Cómo se identifica a la otra parte? ¿Existirá un acceso similar al donde uno puede saber quien es el dueño o responsable por un equipo determinado? Son preguntas que el reglamento, que se debe publicar dentro de los próximos 120 días, debe responder.
Hace bien la ley en señalar la posibilidad de contar con espacios para ensayos, una suerte de zonas libres de regulación. Volviendo al caso de EE.UU., existen estados como Nevada que se han elegido para efectuar pruebas de estos vehículos, y que por consiguiente viene un “hub” para el desarrollo de esta tecnología. También señala la ley que las sanciones las determina la Dirección General de Aeronaútica Civil del MTC, y que en caso de afectación a terceros se puede recurrir a la legislación existente en el ámbito civil o penal, según el caso. Asimismo que las universidades y el CONCYTEC pueden establecer convenios para su fabricación, producción y desarrollo.
Hace mal en señalar que el financiamiento no demanda recursos adicionales y que debe hacerse con el presupuesto del MTC, puesto que establecer un registro y vigilar el cumplimiento que se deben contemplar en el presupuesto. También incurre en un vacío (o trampa) al señalar que el uso de estas aeronaves con fines de deporte y recreación no requieren de permiso o registro. Esto independientemente del tipo, es decir de características como el peso, de la aeronave. Un “drone” sin registro puede cometer una infracción y no hay posibilidad de identificación para iniciar un proceso civil o penal, en caso de afectación de derechos como a la privacidad, que la ley se compromete a proteger.
Desde el punto de vista de desarrollo de negocios y, si se quiere, la innovación; la existencia de un permiso ha sido siempre una limitante y genera costes adicionales al importador de equipos o partes, dado que estos no se fabrican localmente. Hace varios años, junto con un socio, importamos un teléfono IP inalámbrico con el fin de investigar sus potenciales aplicaciones en las empresas. No pudimos retirarlo de aduanas porque el modelo, obviamente, no estaba dentro del registro de equipos permitidos por el MTC. Había que sacar un para incluirlo en el registro y, después, poder retirarlo. La solicitud de internamiento era un trámite relativamente sencillo que lo hice directamente, se estima que le S/. 53.35 y 162 minutos atender cada solicitud. Sin embargo, el tiempo que demandaba y el coste de tener el equipo en la aduana y no en nuestra oficina, usándose en lo que nos propusimos, hizo que básicamente nos olvidemos del asunto. Los que me conocen saben que nunca me dedique al negocio de telefonía IP. Mi entonces socio debe tener el equipo en el almacen de “gadgets” o como juguete para sus hijos.
La tecnología de las aeronaves operadas a distancia o drones está en constante evolución. En los últimos dos o tres años se están descubriendo aplicaciones que vayan más allá del montar una cámara GoPro para tomar fotos o grabar videos. Estas que todavía no conocemos van a impactar en el desarrollo de la tecnología. Un caso concreto es la (baterías). En este sentido, el registro que impone la ley representa una traba para la innovación y el desarrollo de negocios, y promueve la informalidad, puesto que se exceptúa de registro por aplicación y no por características técnicas. Es decir, esto es como solicitar registro (placa o patente) para todos los autos, con la excepción de aquellos que se dedican a paseos privados en la ciudad. Un sin sentido.
Foto: @ Flickr.
The post Congreso peruano reglamenta el uso de aeronaves sin piloto (Drones) first appeared on an act of subversive playful cleverness. ]]>I don’t claim to be a networking expert but at least I want to think I’m well educated. After few minutes I’ve focused my efforts on dealing with the ADSL router/modem’s networking configuration. The device is provided by Movistar (formerly Telefonica) and it runs OpenRG. I’ve discovered that have the same issue and what Movistar did was basically replacing the device. Of course the problem is gone after that.
So, this post is dedicated to those who don’t give up. Following the steps below will allow SSH outbound traffic for a OpenRG-based device.
Software Version: 6.0.18.1.110.1.52 Upgrade Release Date: Oct 7 2014
When you do the command below, it shows nothing but timeout. Even when you SSH the router it doesn’t establish connection to it.
ssh -vv host.somewhere.com
This step will allow you to access the console-based configuration for the router (since I haven’t found any way to do the steps described below from the web management interface).
To do so, go to System > Management > SSH. Update the service port to something else than 22, for instance 2222.
Once you have changed the SSH service port, you can access it from a SSH client.
ssh -p 2222 [email protected] [email protected]'s password: OpenRG>
Once you have the console prompt, issue the following commands to allow SSH outbound traffic coming from the LAN and Wifi networks. After the last command, which saves and updates the device’s configuration, you should be able to do SSH from any computer in your network to the Internet (thanks to ).
OpenRG> conf set fw/policy/0/chain/fw_br0_in/rule/0/enabled 0 Returned 0 OpenRG> conf set fw/policy/0/chain/fw_br1_in/rule/0/enabled 0 Returned 0 OpenRG> conf reconf 1 Returned 0The post No SSH for you – how to fix OpenRG routers first appeared on an act of subversive playful cleverness. ]]>
En Arequipa existen dos universidades que ofrecen la carrera de Ciencia de la Computación, y por coincidencia, también comparten un buen número de profesores. Lo cual significa, hasta cierto punto, que son alternativas relativamente equivalentes. Tenemos la que es privada y la que es pública.
Arequipa es una ciudad con cerca de 1 millón de habitantes. Los últimos 5 años ha sufrido grandes cambios en cuanto a la oferta comercial y de servicios. El año 2007, que la visite por primera vez, tenía solo el pequeño centro comercial “Saga” en la Av. Ejercito. Hoy tiene 5, dos de ellos comparable en tamaño, oferta de tiendas y productos al Jockey Plaza. En estos centros comerciales están las cadenas de “retail” más conocidas: Saga Falabella, Ripley, Oeschle, Tottus, Plaza Vea, Wong, Paris. En restaurantes de “fast-food”: TGI’s Fridays, Papa John’s, KFC, Bembos, Chillis, Telepizza, Subway, Norky’s etc. En restaurantes en otros formatos: Chicha, Tanta, Edo. En centros de diversión: Aura y Mr. Fish, con el mismo formato que en Lima, y decenas de establecimientos locales como Forum en la calle San Francisco en el centro. Cada mes se inauguran nuevos negocios tanto locales como de cadenas nacionales e internacionales. Además en Arequipa existen desde hace varios años productos y empresas o cadenas que no encuentras en otras ciudades como: Pizzas Presto (también en Tacna), Pollo Real, Estilos (retail fundado en Arequipa), Mamut (sandwiches), Capriccio (postres y restaurante), “Kola Escocesa”, Energina, Socosani, etc.
En cuanto a transporte se podría decir que Arequipa es una de las ciudades más conectadas del Perú después de Lima. El desde el 2012 tanto en infraestructura (construcción de ) como en tráfico para atender la demanda de los próximos 20 años. Demanda que ya se supero y llevará a ampliar la pista para poder recibir aviones de mayor tamaño y . Actualmente LAN tiene 8-9 vuelos diarios desde Lima. También llegan Peruvian Airlines y TACA (ahora Avianca). Para vuelos al extranjero, además de las mencionadas, cuenta con la empresa boliviana Amaszonas que cubre Bolivia, Paraguay y Uruguay; y Sky Airline que vuela a Chile, Argentina, Bolivia y Colombia.
En el esquema de presupuesto que coloco pongo énfasis en los costos nuevos para una persona que no vive en Arequipa. Estos principalmente son: vivienda, alimentación. Asumo que pensiones, vestimenta, transporte ya son costos que se tiene previamente, o se van a tener al momento de iniciar estudios en su ciudad de origen. Otro tema importante es que los costos de referencia están cerca de los más altos. Por tanto, es bastante posible encontrar opciones a costo menor para cada item. Finalmente, los costos siempre están relacionados al estilo de vida, pero cuando se es estudiante eso no es la prioridad :)
Item | Costo | Comentarios |
Pensión | S/. 900 | Categoría más alta. |
Vivienda/Renta | S/. 500 | Cuartos/Habitaciones en zonas cercanas. |
Alimentación | S/. 420 | Dos comidas al día. (7*2*30) |
Transporte | S/. 63 | Tres viajes por día. (0.7*3*30) |
Total | S/. 1883 |
Los distritos cercanos a la UCSP son: Cercado, Yanahuara, Cayma (desde la plaza), Selva Alegre (baja). Se puede encontrar habitaciones más económicas en otras zonas como Miraflores, Selva Alegre (alta), Jose Luis Bustamente y Rivero.
Otra forma de ver el presupuesto es el costo efectivo por semestre, puesto que hay algunos costos adicionales que se pagan por semestre. En la UCSP el semestre dura 17 semanas, cerca de 5 meses.
Item | Costo | Unidades | Total |
Pensión | S/. 900 | 5 | S/. 4500 |
Matrícula | S/. 275 | 1 | S/. 275 |
Vivienda/Renta | S/. 500 | 5 | S/. 2500 |
Alimentación | S/. 420 | 5 | S/. 2100 |
Transporte | S/. 63 | 5 | S/. 315 |
Total | S/. 9690 |
Algunas opciones para reducir costos en la UCSP son:
Item | Costo | Comentarios |
Pensión | S/. 0 | |
Vivienda/Renta | S/. 400 | Cuartos/Habitaciones en zonas cercanas. |
Alimentación | S/. 360 | Dos comidas al día. (6*2*30) |
Transporte | S/. 63 | Tres viajes por día. (0.7*3*30) |
Total | S/. 823 |
Los distritos cercanos a la UNSA son: Cercado, Miraflores, Jose Luis Bustamente y Rivero.
Item | Costo | Unidades | Total |
Pensión | S/. 0 | 0 | S/. 0 |
Matrícula | S/. 120 | 1 | S/. 120 |
Vivienda/Renta | S/. 400 | 5 | S/. 2000 |
Alimentación | S/. 360 | 5 | S/. 1800 |
Transporte | S/. 63 | 5 | S/. 315 |
Total | S/. 4235 |
Otras formas de reducir costos en la UNSA son:
What the above statement means for developers or data scientists is that you can “talk” SQL to your HBase cluster. Sounds good right? Setting up Phoenix on Cloudera CDH can be really frustrating and time-consuming. I wrapped-up references from across the web with my own findings to have both play nice.
Because of dependency mismatch for the pre-built binaries, supporting Cloudera’s CDH requires to build Phoenix using the versions that match the CDH deployment. The CDH version I used is CDH4.7.0. This guide applies for any version of CDH4+.
Note: You can find CDH components version in the “CDH Packaging and Tarball Information” section for the “Cloudera Release Guide”. Current release information (CDH5.2.1) is available in this .
Phoenix can be built using maven or gradle. General instructions can be found in the “” webpage.
Before building Phoenix you need to have:
Phoenix has two major release versions:
git clone https://github.com/apache/phoenix.git
Work with the correct branch
git fetch origin git checkout 3.2
Before building Phoenix, you will need to modify the dependencies to match the version of CDH you are trying to support. Edit phoenix/pom.xml and do the following changes:
Add Cloudera’s Maven repository
+ <repository> + <id>cloudera</id> + https://repository.cloudera.com/artifactory/cloudera-repos/ + </repository>
Change component versions to match CDH’s.
- <hadoop-one.version>1.0.4</hadoop-one.version> - <hadoop-two.version>2.0.4-alpha</hadoop-two.version> + <hadoop-one.version>2.0.0-mr1-cdh4.7.0</hadoop-one.version> + <hadoop-two.version>2.0.0-cdh4.7.0</hadoop-two.version> <!-- Dependency versions --> - <hbase.version>0.94.19 + <hbase.version>0.94.15-cdh4.7.0 <commons-cli.version>1.2</commons-cli.version> - <hadoop.version>1.0.4 + <hadoop.version>2.0.0-cdh4.7.0 <pig.version>0.12.0</pig.version> <jackson.version>1.8.8</jackson.version> <antlr.version>3.5</antlr.version> <log4j.version>1.2.16</log4j.version> <slf4j-api.version>1.4.3.jar</slf4j-api.version> <slf4j-log4j.version>1.4.3</slf4j-log4j.version> - <protobuf-java.version>2.4.0</protobuf-java.version> + <protobuf-java.version>2.4.0a</protobuf-java.version> <commons-configuration.version>1.6</commons-configuration.version> <commons-io.version>2.1</commons-io.version> <commons-lang.version>2.5</commons-lang.version>
Change target version, only if you are building for Java 6. CDH4 is built for JRE 6.
<artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> - <source>1.7</source> - <target>1.7</target> + <source>1.6</source> + <target>1.6</target> </configuration>
Once, you have made the changes you are set to build Phoenix. Our CDH4.7.0 cluster uses Hadoop 2, so make sure to activate the hadoop2 profile.
mvn package -DskipTests -Dhadoop.profile=2
If everything goes well, you should see the following result:
[INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] Apache Phoenix .................................... SUCCESS [2.729s] [INFO] Phoenix Hadoop Compatibility ...................... SUCCESS [0.882s] [INFO] Phoenix Core ...................................... SUCCESS [24.040s] [INFO] Phoenix - Flume ................................... SUCCESS [1.679s] [INFO] Phoenix - Pig ..................................... SUCCESS [1.741s] [INFO] Phoenix Hadoop2 Compatibility ..................... SUCCESS [0.200s] [INFO] Phoenix Assembly .................................. SUCCESS [30.176s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:02.186s [INFO] Finished at: Mon Dec 15 13:18:48 PET 2014 [INFO] Final Memory: 45M/1330M [INFO] ------------------------------------------------------------------------
Since Phoenix is a JDBC layer on top of HBase a server component has to be deployed on every HBase node. The goal is to have Phoenix server component added to HBase classpath.
You can achieve this goal either by copying the server component directly to HBase’s lib directory, or copy the component to an alternative path then modify HBase classpath definition.
For the first approach, do:
cp phoenix-assembly/target/phoenix-3.2.3-SNAPSHOT-server.jar /opt/cloudera/parcels/CDH/lib/hbase/lib/
Note: In this case CDH is a synlink to the current active CDH version.
For the second approach, do:
cp phoenix-assembly/target/phoenix-3.2.3-SNAPSHOT-server.jar /opt/phoenix/
Then add the following line to /etc/hbase/conf/hbase-env.sh
/etc/hbase/conf/hbase-env.sh export HBASE_CLASSPATH_PREFIX=/opt/phoenix/phoenix-3.2.3-SNAPSHOT-server.jar
Wether you’ve used any of the methods, you have to restart HBase. If you are using Cloudera Manager, restart the HBase service.
To validate that Phoenix is on HBase class path, do:
sudo -u hbase hbase classpath | tr ':' '\n' | grep phoenix
Phoenix provides a set of client tools that you can use to validate the server component functioning. However, since we are supporting CDH4.7.0 we’ll need to make few changes to such utilities so they use the correct dependencies.
phoenix/bin/sqlline.py:
sqlline.py is a wrapper for the JDBC client, it provides a SQL console interface to HBase through Phoenix.
index f48e527..bf06148 100755 --- a/bin/sqlline.py +++ b/bin/sqlline.py @@ -53,7 +53,8 @@ colorSetting = "true" if os.name == 'nt': colorSetting = "false" -java_cmd = 'java -cp "' + phoenix_utils.hbase_conf_path + os.pathsep + phoenix_utils.phoenix_client_jar + \ +extrajars="/opt/cloudera/parcels/CDH/lib/hadoop/lib/commons-collections-3.2.1.jar:/opt/cloudera/parcels/CDH/lib/hadoop/hadoop-auth-2.0.0-cdh4.7.0.jar:/opt/cloudera/parcels/CDH/lib/hadoop/hadoop-common-2.0.0-cdh4.7.0.jar:/opt/cloudera/parcerls/CDH/lib/oozie/libserver/hbase-0.94.15-cdh4.7.0.jar" +java_cmd = 'java -cp ".' + os.pathsep + extrajars + os.pathsep + phoenix_utils.hbase_conf_path + os.pathsep + phoenix_utils.phoenix_client_jar + \ '" -Dlog4j.configuration=file:' + \ os.path.join(phoenix_utils.current_dir, "log4j.properties") + \ " sqlline.SqlLine -d org.apache.phoenix.jdbc.PhoenixDriver \
phoenix/bin/psql.py:
psql.py is a wrapper tool that can be used to create and populate HBase tables.
index 34a95df..b61fde4 100755 --- a/bin/psql.py +++ b/bin/psql.py @@ -34,7 +34,8 @@ else: # HBase configuration folder path (where hbase-site.xml reside) for # HBase/Phoenix client side property override -java_cmd = 'java -cp "' + phoenix_utils.hbase_conf_path + os.pathsep + phoenix_utils.phoenix_client_jar + \ +extrajars="/opt/cloudera/parcels/CDH/lib/hadoop/lib/commons-collections-3.2.1.jar:/opt/cloudera/parcels/CDH/lib/hadoop/hadoop-auth-2.0.0-cdh4.7.0.jar:/opt/cloudera/parcels/CDH/lib/hadoop/hadoop-common-2.0.0-cdh4.7.0.jar:/opt/cloudera/parcerls/CDH/lib/oozie/libserver/hbase-0.94.15-cdh4.7.0.jar" +java_cmd = 'java -cp ".' + os.pathsep + extrajars + os.pathsep + phoenix_utils.hbase_conf_path + os.pathsep + phoenix_utils.phoenix_client_jar + \ '" -Dlog4j.configuration=file:' + \ os.path.join(phoenix_utils.current_dir, "log4j.properties") + \ " org.apache.phoenix.util.PhoenixRuntime " + args
After you have done such changes you can test connectivity by issuing the following commands:
./bin/sqlline.py zookeeper.local Setting property: [isolation, TRANSACTION_READ_COMMITTED] issuing: !connect jdbc:phoenix:zookeeper.local none none org.apache.phoenix.jdbc.PhoenixDriver Connecting to jdbc:phoenix:zookeeper.local 14/12/16 19:26:10 WARN conf.Configuration: dfs.df.interval is deprecated. Instead, use fs.df.interval 14/12/16 19:26:10 WARN conf.Configuration: hadoop.native.lib is deprecated. Instead, use io.native.lib.available 14/12/16 19:26:10 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS 14/12/16 19:26:10 WARN conf.Configuration: topology.script.number.args is deprecated. Instead, use net.topology.script.number.args 14/12/16 19:26:10 WARN conf.Configuration: dfs.umaskmode is deprecated. Instead, use fs.permissions.umask-mode 14/12/16 19:26:10 WARN conf.Configuration: topology.node.switch.mapping.impl is deprecated. Instead, use net.topology.node.switch.mapping.impl 14/12/16 19:26:11 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS 14/12/16 19:26:11 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 14/12/16 19:26:12 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS 14/12/16 19:26:12 WARN conf.Configuration: fs.default.name is deprecated. Instead, use fs.defaultFS Connected to: Phoenix (version 3.2) Driver: PhoenixEmbeddedDriver (version 3.2) Autocommit status: true Transaction isolation: TRANSACTION_READ_COMMITTED Building list of tables and columns for tab-completion (set fastconnect to true to skip)... 77/77 (100%) Done Done sqlline version 1.1.2 0: jdbc:phoenix:zookeeper.local>
Then, you can either issue SQL-commands or Phoenix-commands.
0: jdbc:phoenix:zookeeper.local> !tables +------------------------------------------+------------------------------------------+------------------------------------------+---------------------------+ | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | TABLE_TYPE | +------------------------------------------+------------------------------------------+------------------------------------------+---------------------------+ | null | SYSTEM | CATALOG | SYSTEM TABLE | | null | SYSTEM | SEQUENCE | SYSTEM TABLE | | null | SYSTEM | STATS | SYSTEM TABLE | | null | null | STOCK_SYMBOL | TABLE | | null | null | WEB_STAT | TABLE | +------------------------------------------+------------------------------------------+------------------------------------------+---------------------------+The post Apache Phoenix for Cloudera CDH first appeared on an act of subversive playful cleverness. ]]>
Hace varios días me di con la sorpresa de que en el año 2013 había publicado una cartilla de orientación para los sectores creativos denominada “”, una iniciativa super interesante puesto que si de algo adolecen muchos programadores y empresas de software en el medio es de conocimiento en materia de derechos de autor.
Sin embargo, al iniciar mi lectura, me tope con una no tan grata sorpresa y es que dentro de los autores no había ningún programador. Esta fue una de las razones para escribir algunos párrafos que están orientados a esclarecer varios puntos que he encontrado y que no son exactos, asumo por omisión o ignorancia en el tema.
Iniciando la lectura, en el prólogo de Martín Moscoso, se usa el término “industrias culturales”.
Sólo las industrias culturales fuertes pueden garantizar trabajo permanente a los creadores…
Más allá de la inexactitud de la afirmación en términos económicos, pues en la economía de mercado no existe nada que garantice trabajo permanente a un creador; hay que tomar en cuenta que según la definición de y “industrias culturales” se refiere a:
el sector de la economía que se desarrolla en torno a bienes culturales tales como el arte, el entretenimiento, el diseño, la arquitectura, la publicidad, la gastronomía y el turismo.
El software no se circunscribe a esta definición ya que no es comparable o equivalente a alguna de estas áreas de la economía. Mucho menos se acerca. El software, y la computación en forma general, es un área transversal que impacta en las diferentes áreas de conocimiento y de la economía.
Al final del párrafo se da un ejemplo sobre el programa HACHA. Donde se menciona:
…el cual (HACHA) puede ser descargado, instalado y utilizado libremente sin necesidad de pagar contraprestación o licencia alguna por ello: …
Aquí existe un error de definición. En principio una licencia de uso se refiere a los términos en los que el autor determina cómo un tercero puede hacer uso del software, bien en formato objeto (binario) o en código fuente. Esta licencia es independiente de la eventual contraprestación que su autor requiera para otorgar el uso, u otro beneficio. Es decir, no es correcto afirmar que una licencia equivale a efectuar un pago o contraprestación. Más aún cuando se la describe en el ámbito del derecho, o legal.
Si uno “adquiere” 10 licencias CAL de Microsoft significa que uno acepta los términos de uso que Microsoft Corp. otorga y, por tanto, su aceptación demanda que por cada usuario/computador se debe efectuar un pago para hacer uso del software en forma legal. Este aspecto está mucho mejor descrito en el item 10 de la guía. Nada debe dar la impresión de que estas “comprando” 10 veces la licencia.
En el segundo párrafo se menciona:
Ser susceptible de ser divulgado (es decir, que pueda ser “leído” en su propio lenguaje de programación o mediante el medio o soporte para el cual el programa de ordenador haya sido creado);
Aquí existe primero una contradicción con el punto 3 (¿Específicamente qué componentes del programa de ordenador quedan protegidos por Derecho de autor?) donde se señala correctamente “El código objeto (o ejecutable)”; puesto que un programa, por ejemplo Microsoft Office, está protegido por el Derecho de autor así no pueda ser “leído” en su propio lenguaje de programación. Segundo, el aspecto de divulgación personalmente lo entiendo como publicación o disponibilidad a través de algún medio o soporte. Posiblemente ese párrafo se pueda redactar mejor. Lo que debe quedar claro es que no es necesario que se cuente con el código fuente de un programa para que éste se encuentre protegido por el Derecho de autor.
En el tercer párrafo se menciona:
- Igualmente se puede explotar este derecho de distribución, de forma conjunta, con el derecho de reproducción temporal del programa de ordenador o software en cuestión, mediante el llamado software como servicio (en inglés, software as a service o SaaS), el cual se realiza mediante el cobro de una remuneración fija por su uso durante un período de tiempo determinado, pero sin que a tal fin exista distribución o reproducción permanente de una copia o ejemplar del mismo; siendo que el software se utiliza y explota por el usuario “en la nube” (es decir, mediante un servicio de alojamiento remoto actualmente conocido como Cloud Computing).
Varias observaciones. La primera es que “Software as a Service (SaaS)” según la definición del National Institute of Standards and Technology (NIST) en su “Special Publication”: es:
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure. The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based email), or a program interface. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.
Como se puede ver, asumo que usted amigo programador entiende claro el inglés (si no, vea mi artículo ““), “SaaS” no se refiere a los términos de comercialización sino a los mecanismos para la distribución de las aplicaciones o programas de software. Es decir, los mecanismos con los que cuenta el autor para poner a disposición su producto software para uso por terceros.
Lo segundo es que “Cloud Computing”, también de acuerdo a la misma definición del NIST usado por toda la industria, no es un “alojamiento remoto”, análogo al conocido “hosting” sino:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
En este punto también existe un error de concepto puesto que absolutamente todos los programas que se ejecutan en un computador necesariamente se “cargan” a memoria. Esto desde el sistema operativo hasta los programas aplicativos de usuario.
Aquí también otro concepto que se ha socializado incorrectamente. Todo software tiene propietario, que generalmente es su autor, a menos que éste ceda todos sus derechos morales y patrimoniales. Partiendo de dicho concepto, en la comunidad de software libre se conoce a todo lo que no es Software Libre como “software privativo”, bajo la idea de que éste priva a sus usuarios de libertades que el software libre considera fundamentales.
Otro concepto igualmente socializado erroneamente. La Real Academia de la lengua Española define piratería como:
Ninguna de las afirmaciones de este punto cumplen con la definición de la RAE. Más bien se refieren principalmente a la violación o incumplimiento del Derecho de autor, principalmente en el uso y reproducción de los programas de software. Los piratas ya murieron.
Finalmente, debo mencionar que en términos generales la guía contiene información importante y por ello aplaudo la iniciativa. Quizá con ayuda de personas de la industria podría mejorarse en cuanto a forma y fondo. Una sugerencia final: a los programadores no nos gusta el tipo de letra onda Comic Sans :)
The introduction of the personal computer (PC) turned computers from number crunching machines into digital production tools. Production tools were gradually removed in favor of the computer for text editing, video editing, graphics, record keeping, etc. Eventually this phenomena increased the demand for larger permanent storage capacity. Every new computer model should advertise at least a 2x increase in it’s disk capacity to caught market’s eye. Worldwide Internet adoption put the pressure few levels up. Current models will never get you satisfaction as the latest and greatest promises. It’s an addiction. The more the better.
Little time has been put on re-thinking this clearly unsustainable model. Do you really need to have the largest disk in the world on your personal computer? I find that keeping files that are, and most likely will be, available forever in the Internet makes no sense. We should really ask ourselves this question: How much memory we want to keep? My take on such question is this:
Memory is becoming larger and faster but access and retrieval is still constrained by time. My answer to the initial question came when asking myself if the “download” model is still valid today. Computers were designed under the copy model. To work with data you need to copy from disk to main memory or the other way. The moment you visit a website a copy of that is stored on your browser’s assigned memory. Does this model still makes sense in the Internet and always-on world? I think the model should be upgraded.
The post Memory first appeared on an act of subversive playful cleverness. ]]>As millions, if not billions, of variables are involved in the millions of interactions that happen every second in the world, not to say our galaxy, embracing chaos makes a lot of sense for us. It doesn’t mean that you should let randomness control your life, but have a next destination target and move towards that direction. All roads lead to Rome.
Since you don’t know how long it will take you to get to the next hop is wise to travel light. Remove all things that can be a burden in your luggage. You don’t have to be happy. Pursuing happiness can be a real burden for most people. Don’t be happy, be yourself. Do what’s best for you at the moment, then move on. Do what’s best for others you care about along the way too. Be amazing!
Namaste.
The post Computers first appeared on an act of subversive playful cleverness. ]]>