Sitio de asuntos y tópicos acerca de VENENUX GNU/Linux, multimedia, y comunidad, para paquetes de emulación y otros visita McKAY bros..

Indice reciente de contenidos:

Repositorio Programas para VENENUX: http://venenux.org/repos/venenux/
Paquetes de Juegos y emuladores para VENENUX: http://74.86.158.5/~op0014t/mckayemu/
Nuevo foros de VENENUX : http://foros.venenux.org

gambas3: collections of collections asi como php array of arrays

|
Esos chicos que codifican en php encontrarán gracioso que hacer objetos de datos en tablas sea fácil .. matrices, arrays .. por eso que en php una matriz puede manejar cualquier valor, y el índice puede ser cualquier tipo, no sólo índices enteros. El artículo se inspiró en un problema en la lista de correo gambas:
Http://gambas.8142.n7.nabble.com/collection-of-collection-problem-tp58654p58659.html

Pero espera, en php, una matriz puede manejar múltiples matrices, que no es lo mismo de una matriz multidimensional! ¡cuidado! Que es el mejor en este caso especial de este artículo!

Quiero decir: una matriz dentro de una matriz! Y los valores y la clave de los arrays pueden ser de cualquier tipo .. genial!
En java, hay alguna dificultad, una colección es la única manera de hacer eso y hay otro, sólo un tipo de valores pueden manejar en una colección.

Desafortunadamente en Gambas su más duro todavía: debe ser colecciones y debe iterar dos veces para manejar otro.

Un Ejemplo:

..un objeto "orden" que tiene asociado muchos "productos" entonces: 

La data ejemplo:

Main object: object (1 elemento con muchos atributos) y uno de estos es el cod_contenido, de los productos de la orden 
Second objects: attr:cod_contenido varios objetos con muchos atributos y muchos de esos objetos

|-----------------------------|
|   ORD101                    |
|-----------------------------|
| cod_orde:101                |
| des_order:description bla bl|----------------------------|
| cod_contents:1011           |        CON1011             |
|-----------------------------|----------------------------|
                              |    cod_product:101,        |
                              |    cod_order:101,          |
                              |    can_product:2           |
                              |----------------------------|
                              |    cod_product:102         |
                              |    cod_order:101           |
                              |    can_product:12          |
                              |----------------------------|

Hacerlo con php:

muy facil dentro del arreglo inicial se coloca como un valor el otro arreglo solo dos iteraciones:

$conn = mysqli_connect($servername, $username, $password, $dbname);
$orders = "SELECT * FROM almorder WHERE cod_order = '001'";
$ordersproducts = "SELECT * FROM alorderproducts WHERE cod_order = '001'";
$result = mysqli_query($conn, $orders);
foreach($result as $keyname => $valuename) 
{
    $orderarray[$keyname] = $valuename; 
    if ( $keyname == 'cod_contenido' )
    {
        $resultdet = mysqli_query($conn, $ordersproducts);
        foreach($resultdet as $keynamedet => $valuenamedet)
        {
            $orderdetail[$keynamedet] = $valuenamedet;
        }
        $orderarray[$keyname] = $valuename;
    }
}

Hacerlo con Gambas:

En gamgas es una complicacion, hay que iterar dos veces por cada objeto, y no se puede usar arreglos, sino colleciones.. puesto que los arreglos son de un solo tipo:

orders = "SELECT * FROM almorder WHERE cod_order = '001'";
ordersproducts = "SELECT * FROM alorderproducts WHERE cod_order = '001'";
rset = $conexion.Exec(orders)
For Each rset
    columnas = New Collection(gb.IgnoreCase)
    For Each hField In rset.Fields
        columnas.Add(hField.Name), rset[hField.Name])
        if ( Comp(hField.Name, "cod_contenido") == 0 ) then
            rsetdet = $conexion.Exec(ordersproduts)
            filasdet = New Collection(gb.IgnoreCase)
            For Each rsetdet
                columnasdet = New Collection(gb.IgnoreCase)
                For Each hFieldet In rsetdet.Fields
                    columnasdet.Add(hFieldet.Name), rsetet[hFieldet.Name])
                Netx
                filasdet.Add(columnaset, rset!cod_contenido)
            Next
            columnas.Add(filasdet, "cod_contenido")
        Endif
    Next
    filas.Add(columnas, rset!cod_despacho)
Next

!



Codeigniter VNX: Vanilla Datatables class generator code

|
El codeigniter VNX tiene una nueva capacidad increible, la tabla ahora puede integrarse con vanilla DataTables, sin necesidad de Jquery, esto hace a el framework en terminos de carga rapido, ya que el script para esto es menos de 10k . Nada de estupidos Jquery y versiones de este.

https://gitlab.com/venenux/codeigniterpower

Como? igual: con una sola linea:
 $this->table->set_datatables( array("fixedColumns"=>TRUE) );

  • buscador integrado para las filas y columnas
  • paginacion automatica configurable
  • generacion y carga de codigo js/css automatica, solo se escribe php



codeigniter en venenux : video how to php y codeigniter 5 pasos

|
En este video se resume como y porque comenzar programar en php y codeigniter VenenuX es ma facil:



Synce y conectar PDA y Palms facil

|
En el repositorio hay un paquete llamado synce-gvfs que lo hace todo

El la primera imagen se muestra la ruta USERSPACE donde el usuario puede acceder realmente a los archivos, esto funciona con fuse y gvfs , synce emplea estas capas y monta el dispositivo aqui:
el "1000" es el identificador de usuario puedes hacer:

cd /var/run/user/"$(id -u)"

.. y como una imagen vale mas que mil palabras:


Cuadno nos justificamos con doble moral, en vez de necesidad real

|
En un articulo el principal impulsor de el emulador de reincast se justifica con una historia "de sufrimiento".. y todos los Venezolanos y Latinoamericanos sabemos realmente el verdadero sufrimiento y esfuerzo, resumeindo dice:
  • que por meterse a programar no completo bien los estuios
  • que se le acabo el dinero porque cuando se metia en el monitor no generaba dinero
  • que su novia lo dejo porque no le dedicaba
  • que la situacion estaba mala (erga, mailisma, tanto que compro una moto como freelance)
la ultima es la que mas llama la atencion, que trabajo para nvidia y que eran (ERAN) los chicos malos pero ahora son lo mejor del apoyo a compartir...  esto sumamos la foto con cuerpo de mujer es un claro ejemplo de poco esfuerzo en un mundo europeo de soluciones a mano, a diferencia de latinoamerica y su inigualable pirateria y robo de ideas...

a esto viendo nuestra situacion Venezolana con maburro no se hizo llegar mi comentario:

http://reicast.com/post/148787147879/depression-crowdfunding-and-open-source-emulators#comment-3188934550

aqui traduzco resumido:

Lo siento, no veo cuál es el sufrimiento. Explico por qué, es bueno contribuir, pero lee un momento:

En Venezuela hay robo de ideas, mal salario, devaluación de la profesión de desarrollo de software, ...
Y para peor, el software se rige por imitaciones y copias ilegales de buenas obras

.. es decir, si usted vivía aquí, la cosa me parece que usted no intentó suficiente

Así que su justificación para trabajar para los malos es realmente su solución a su desesperación y justificación a su doble moral
SI DICES LO HICE POR NECESIDAD LE CREO PERO NO VENGA CON ESA DOBLE MORAL, querias dinero!

Porque cuando hay necesidad, la gran mayoría dejará de lado la moral .. y se disculpará con las necesidades y el hambre, aquí hay necesidades reales y algunas personas como yo no hacen moral doble

Aquí en Venezuela hay una situación realmente mala, máquinas lentas y hardware de bajo costo son la principal prioridad en algunos ambientes, debido al alto costo de vida .. si u contribuye para que reincast funciona en hardware bajo, pienso differents sobre esa historia .. pero mi Petición fue ignorado en github y veo que "historia" !!!

En post más antiguo aquí hablar de teléfonos "inteligentes" que "se caliente" debido a los altos requisitos de y app (como dreamcast), pero reincast consumir demasiados recursos, me remembran el proyecto lxdream que funciona .. ¿por qué no contribuir a que lxdream buen proyecto? Yo sé: demasiado trabajo y no hay dinero (en ese momento) .. pero ahora "dinero su espalda"

PS: hacer excersice y deports, demasiado tiempo en frente del monitor no ayuda .. i desarrollar y hacer una vida .. es difícil pero es la vida real

Lenz McKAY Gerardo (PICCORO)

Quiero hacer mencion de gente que realente ha sufrido y hecho un esfuerzo:
  1. Master Vitronic: Venezolano aun en la crisis y con familia, fabrico VenenuX, con sus ideas y nacio AVLinux RedStart Linux, Vegnux, fabrico IsPOS un sistema completo ERP superior a facturascripts, y hasta hace unos dos años que se vio obligado a migrar usar cosas distintas y separarse.
  2. Alexis López Zubieta: Cubano, al igual que nosotros, con internet limitado, hardware limitado hubiera sido felix con venenux, tarde le llego, pero lucho y desarrollo un escritorio, lastimosamente el proyecto se congelo porque sus necesidades si eran reales, y hoy esta mejorando su situacion.
  3. Carlos Peña: Aragueño: apoyo a venenux, mantiene espacio para los repositorios y uso venenux hasta hace unos meses, hasta que el hardware y la necesidad lo obligo a migrar algunos servidores (casi todos) a debian ultimo.. reconociendo que nada mas rapido que venenux.
  4. Domingo Utrera: Venezolano: al igual que yo y vitronic, no tiene (aun) internet, pero usa linux, cayo en desgracia real al ser acusado de algo que no cometio, lucho y aun esta persistiendo y no se desanima de apoyar.
  5. Angel Velazquez: Valenciano: hasta donde pudo mantuvo el servidor y lugar para web y repositorio de venenuz, hasta que ya necesito y no tuvo mas recursos. Sostuvo la radio por stream de venenux, el sistema de proyectos y parte del hardware en tiempos anteriores al repo actual.
  6. Y EL RESTO???: ellos "salieron a tiempo" es decir no realizaron un esfuerzo por el grupo sino uno por ellos mismos, por eso no los menciono ya que apoyaron si, pero no en tan gran medida.. muchos hoy dia usan Windo.


CRON y ANACRON como usarlos y estructura

|
En el sistema linux Debian y VenenuX hay dos programas para ejecucion periodica de tareas, CRON y ANACRON, 

La diferencia es que CRON asume esta el sistema 24 horas encendido, ANACRON es para sistemas que si se apagan, por consiguiente CRON siempre esta instalado en servidores, y distros guindoseras siempre instalan anacron para asegurar fastidiosas tareas como "unnatended upgrades".
  • En un servidor CRON debe siempre estar instalado.
  • En un servidor CRON sera util si envia correos. (usando /etc/cron.d/)
  • CRON es SINCRONO
  • ANACRON es ASINCRONO
  • Si ANACRON se instala, CRON no comanda el total de tareas, solo las de /etc/crontab
  • ANACRON se ejecuta siempre al iniciar el sistema
  • En un entorno de escritorio no son necesarios.