elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Temas
Páginas: [1]
1  Programación / Desarrollo Web / ¿Cuál es la diferencia entre la tabla sesión y la tabla usuarios? en: 1 Mayo 2018, 05:48 am
Sé que esta parece una pregunta un poco estúpida pero es algo que no termino de entender. Supongamos que tenemos un sitio web como YouTube donde las personas pueden usar su servicio sin necesidad de estar "logeadas" o registradas en la plataforma.

Cada vez que la persona hace una petición a una página (video) de YouTube, se verifica la existencia de alguna cookie, si no la tiene añade un nuevo registro a las cookie, que llamaré SESS_ID y por ende un nuevo registro a la tabla sesión con ese identificador.

Tengamos en cuenta que en ese punto esa persona tiene una sesión registrada pero no se encuentra registrado en sí en el sistema. Así que YouTube puede ofrecer recomendaciones dependiendo de la interacción de ese usuario (a través del SESS_ID) con el sitio. Pero que sucede cuando el usuario está logeado, obviamente aún existe la cookie en el navegador, pero ¿cómo se reconoce que el está registrado, como se hace la conexión entre SESS_ID y la tabla usuarios? ¿Hay que tener algún campo llamado user_id en la tabla sesión que haga referencia a un usuario en la tabla usuarios o es necesaria otra tabla sesión pero solo para las personas registradas?

Quisiera que me pudieran aclarar esta duda lo más sencillo posible siguiendo, si es posible, un ejemplo de un sitio web como YouTube que acepta usuarios tanto registrados y logeados como no logeados. ¿Cómo debería realizarse un diseño entre esas 2 tablas para un sitio web que funcione así?
2  Foros Generales / Dudas Generales / ¿Quiénes son el centro de internet? ¿Cómo funciona realmente un proxy? en: 10 Julio 2017, 14:07 pm
Hola, buen día.

He leído que el internet inicialmente fue un proyecto con fines militares y toda esa cuestión, pero cuando sigo leyendo, tengo estas interrogantes.

Una de las primeras es por supuesto, se supone que a nosotros nos  distribuye el internet las ISP, ahora, ¿quién les da el internet a ellos para que ellos nos lo den a nosotros? y luego ¿quién les da el internet a esos que le dan internet a los ISP? Me imagino que tienen que haber unas empresas o una empresa en la punta de todo, que básicamente esa empresa es internet, me imagino que esa empresa no tiene límite de internet pues ella es internet...

Si una nueva empresa quisiera por ejemplo ser de esas que distribuyen el internet a los ISP, ¿qué hay que hacerse? ¿Habría que contactar a esa empresa que está en lo más alto del internet?

Tengo una super duda que la verdad no entiendo y es con respecto al uso de proxy: yo actualmente trabajo en una empresa que tiene sucursales en todo el mundo, se llama PwC (PricewaterhouseCoopers), ellos, aquí en la sede en mi país, tienen bloqueado páginas como Facebook y YouTube (la tienen bloqueada por el router), básicamente lo que he escuchado es que todas las peticiones que salen de todas las sedes en el mundo van a la sede central (en el Reino Unido) y luego devuelven la búsqueda... ¿Esto quiere decir que ellos tienen a todas las empresas unidas con cables de fibra óptica en donde el tráfico llega principalmente a los servidores de la sede central? Apreciaría que me aclararan la duda.

Por ejemplo, yo cuando hago una petición desde mi computadora hacia cierta página web, por ejemplo: Facebook, esta, como he oído, obligatoriamente pasa por el router y si este encuentra que la petición coincide con una de las que tiene bloqueada, devuelve un error a mi petición. Pero la cuestión ocurre cuando se usa algún proxy, ¿acaso la petición no pasa por el mismo router? ¿No debería bloquearla de todas maneras?, cabe acotar que hay algunas páginas, que ya sea con el uso de proxy o lo que sea no te deja entrar por que lo tienen bloqueada desde los servidores en la sede central (ojo, es lo que he oído); pero aquí, internamente, ¿por qué sucede eso al hacer uso de proxy? Igualmente apreciaría que me aclararan, si es posible, lo más explicado posible como funcionan las peticiones con/sin proxy. Por cierto yo entiendo eso de que el proxy es una computadora que hace la petición por ti, pero inicialmente cuando sale la petición de mi computadora hacia esa computadora para que haga la búsqueda, ¿no pasa primero por el router igual?

Muchas gracias, espero tener respuestas de ustedes, buen día.
3  Programación / Scripting / Problema con python, multi-hilos y mysql en: 29 Junio 2017, 22:46 pm
Hola a todos, la verdad es que estoy iniciando con MySQL, Python y ,más importante, estoy aún novato con la programación multi-hilos en python, tengo un gran problema que no sé cual es el error, he visto la descripción de los errores que genera python y a veces me suelta un error que me dice que se ha perdido la conexión, supongo que será porque hago muchas peticiones; y a veces me salta otro error que dice algo como que no pudo analizar la información de la tabla.

Aquí les dejo una foto de los 2 errores que me da el script:
http://imgur.com/a/OPhpF

Intenté solucionar lo anterior buscando a ver como se podía hacer que MySQL trabajara con distintos puertos, para asignarle a cada hilo un puerto pero no he conseguido nada.

De todas formas aquí les dejo el código, solo vean el contexto de como aplico el procesamiento multi-hilo, si pueden entenderlo, mejor, así me dicen en qué me equivoco. Por cierto, he verificado que todo está bien: los nombres de los campos y tablas coinciden correctamente, así que por ese lado no ocurre algún error.

Antiguamente cuando no utilizaba el multi-hilos (que tenía el código con menos funciones) todo iba a la perfección, los problemas llegaron con eso y supongo que estoy haciendo varias cosas mal de las que no me doy cuenta. Aquí se los dejo:

Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. import threading
  4. import mysql.connector
  5. import win32con
  6. import sys, os
  7. import struct
  8. import time
  9. from win32api import *
  10. from win32gui import *
  11. from mysql.connector import Error
  12. from threading import Thread
  13.  
  14. cnx = mysql.connector.connect(host="localhost",
  15.                              user="root",
  16.                              password="1234",
  17.                              database="gammu")
  18. cnx2 = mysql.connector.connect(host="localhost",
  19.                              user="root",
  20.                              password="1234",
  21.                              database="gammu")
  22. cnx3 = mysql.connector.connect(host="localhost",
  23.                              user="root",
  24.                              password="1234",
  25.                              database="gammu")
  26.  
  27. cursor = cnx.cursor()
  28. cursor2 = cnx.cursor()
  29. cursor3 = cnx.cursor()
  30.  
  31. global errKey
  32. global errHash
  33.  
  34. class WindowsBalloonTip:
  35.    def __init__(self, title, msg):
  36.        message_map= {
  37.            win32con.WM_DESTROY: self.OnDestroy,
  38.        }
  39.  
  40.        wc = WNDCLASS()
  41.        hinst = wc.hInstance = GetModuleHandle(None)
  42.        wc.lpszClassName = "NotificationTaskR"
  43.        wc.lpfnWndProc = message_map
  44.        classAtom = RegisterClass(wc)
  45.  
  46.        style = win32con.WS_OVERLAPPED | win32con.WS_SYSMENU
  47.        self.hwnd = CreateWindow(classAtom, "Taskbar", style, 0, 0, \
  48.                                 wind32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT, \
  49.                                 0, 0, hinst, None)
  50.        UpdateWindw(self.hwnd)
  51.        iconPathName = os.path.abspath(os.path.join(sys.path[0], 'balloontip.ico'))
  52.        icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
  53.        try:
  54.            hicon = LoadImage(hinst, iconPathName, win32con.IMAGE_ICON, 0,0, icon_flags)
  55.        except:
  56.            hicon = LoadIcon(0, win32con.IDI_APPLICATION)
  57.        flags = NIF_ICON | NIF_MESSAGE | NIF_TIP
  58.        nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "New message received")
  59.        Shell_NotifyIcon(NIM_ADD, nid)
  60.        Shell_NotifyIcon(NIM_MODIFY, (self.hwnd, 0, NIF_INFO, win32con.WIM_USER+20, \
  61.                                      hicon, "Balloon tooltip", msg, 200, title))
  62.  
  63.        time.sleep(3)
  64.        DestroyWindow(self.hwnd)
  65.        classAtom = UnregisterClass(classAtom, hinst)
  66.    def OnDestroy(self, hwnd, msg, wparam, lparam):
  67.        nid = (self.hwnd, 0)
  68.        Shell_NotifyIcon(NIM_DELETE, nid)
  69.        PostQuitMessage(0)
  70.  
  71. def balloon_tip(title, msg):
  72.    w = WindowsBalloonTip(title, msg)
  73.  
  74. def newWh():
  75.    while True:
  76.        cnx.connect()
  77.        lastRquery = ("select UpdatedInDB, AES_DECRYPT(TextDecoded, (select AES_DECRYPT(cryptkey, '373630303a3a3') from decryptkey)), "
  78.                      "AES_DECRYPT(SenderNumber, (select AES_DECRYPT(cryptkey, '373630303a3a3') from decryptkey)), ID from inboxencrypt where "
  79.                      "chck=0 order by UpdatedInDB asc limit 1")
  80.        cursor.execute(lastRquery)
  81.        regL = cursor.fetchall()
  82.        if not regL:
  83.            cnx.close()
  84.            import time
  85.            time.sleep(3)
  86.            continue
  87.        else:
  88.            for row in regL:
  89.                time = row[0]
  90.                timeC = str(time)
  91.                timeO = timeC[10:]
  92.                message = row[1]
  93.                telephone = row[2]
  94.                toUR = row[3]
  95.                lengM = len(message)
  96.            smsDetect = message[27:]
  97.            procMR = message.split()
  98.            if procMR[0] == "\send":
  99.                #Detect first command
  100.                cnx.close()
  101.                cnx.connect()
  102.                queryAuth = ("SELECT privkey FROM transferauth WHERE "
  103.                             "privkey=sha(%s)", procMR[1])
  104.                cursor.execute(queryAuth)
  105.                authStorage = cursor.fetchall()
  106.                for row in authStorage:
  107.                    key = authStorage[0]
  108.                if procMR[1] == key:
  109.                    #Detect authentication key
  110.                    if procMR[2] == "\a":
  111.                        #Detect command to send multiple messages to all contact list
  112.                        print("Ok")
  113.                    elif len(procMR[2]) == 13:
  114.                        #Send message to specific contact
  115.                        if telpComm[0] == "+" and telpComm [1:3] == "58":
  116.                            #Verifying international code
  117.                            telpComm == procMR[2]
  118.                            if len(smsDetect) > 3:
  119.                                #Verifying minimum message length
  120.                                if smsDetect[-1] == '"' and smsDetect[0] == '"':
  121.                                    #Verifying message format and sending message
  122.                                    msgToSend = smsDetetct[1:-1]
  123.                                    cnx.close()
  124.                                    cnx.connect()
  125.                                    sendQuerExt = ("insert into outbox(DestinationNumber, "
  126.                                                   "TextDecoded, CreatorID) values "
  127.                                                   "('%s','%s','PwC')" % (telpComm, msgToSend))
  128.                                    cursor.execute(sendQuerExt)
  129.                                    cnx.commit()
  130.                                    cnx.close()
  131.                                    #Reconnecting to database and ipdating message status
  132.                                    cnx.connect()
  133.                                    updateRquery = ("update inbox set chck=1 where "
  134.                                                    "ID=%s" % toUR)
  135.                                    cursor.execute(updateRquery)
  136.                                    cnx.commit()
  137.                                    cnx.close()
  138.                                    #Wait for re-establish loop
  139.                                    import time
  140.                                    time.sleep(3)
  141.                                    print("~~~Send message is required for: "+telephone)
  142.                                    print("~~~Send message in required for: "+telpComm+"\n\n")
  143.                                    continue
  144.                                else:
  145.                                    #Invalid message format => ERR_FORMATSMS_INVALID
  146.                                    cnx.connect()
  147.                                    srcErrorSource = ("select errordesc, hexcode from transfererrors "
  148.                                                      "where cause='ERR_FORMATSMS_INVALID'")
  149.                                    cursor.execute(srcErrorSource)
  150.                                    errStorageA = cursor.fetchall()
  151.                                    for row in errStorageA:
  152.                                        errKey = row[0]
  153.                                        errHash = row[1]
  154.                                        cnx.close()
  155.                                    cnx.connect()
  156.                                    recQueryErrorNumb = ("insert into outbox(Text, DestinationNumber, "
  157.                                                         "TextDecoded, CreatorID) values "
  158.                                                         "('%s','%s','%s','PwC')" % (errHash, telephone, errKey))
  159.                                    cursor.execute(recQueryErrorNumb)
  160.                                    cnx.commit()
  161.                                    cnx.close()
  162.                                    #Reconnecting to database and updating message status
  163.                                    cnx.connect()
  164.                                    updateRquery = ("update inbox set chck=1 where "
  165.                                                    "ID=%s" % toUR)
  166.                                    cursor.execute(updateRquery)
  167.                                    cnx.commit()
  168.                                    cnx.close()
  169.                                    #Wait for re-establish loop
  170.                                    import time
  171.                                    time.sleep(3)
  172.                                    continue
  173.                            else:
  174.                                #Minimum message length required => ERR_LENGTHSMS_INVALID
  175.                                srcErrorSource = ("select errordesc, hexcode from transferrors "
  176.                                                      "where cause='ERR_LENGTH_INVALID'")
  177.                                cursor.execute(srcErrorSource)
  178.                                errStorageA = cursor.fetchall()
  179.                                for row in errStorageA:
  180.                                    errKey = row[0]
  181.                                    errHash = row[1]
  182.                                    cnx.close()
  183.                                cnx.connect()
  184.                                recQueryErrorNumb = ("insert into outbox(Text, DestinationNumber, "
  185.                                                         "TextDecoded, CreatorID) values "
  186.                                                         "('%s','%s','%s','PwC')" % (errHash, telephone, errKey))
  187.                                cursor.execute(recQueryErrorNumb)
  188.                                cnx.commit()
  189.                                cnx.close()
  190.                                #Reconnecting to database and updating message status
  191.                                cnx.connect()
  192.                                updateRquery = ("update inbox set chck=1 where "
  193.                                                    "ID=%s" % toUR)
  194.                                cursor.execute(updateRquery)
  195.                                cnx.commit()
  196.                                cnx.close()
  197.                                #Wait for re-establish loop
  198.                                import time
  199.                                time.sleep(3)
  200.                                continue
  201.                        else:
  202.                            #Wrong international telephone format => ERR_FORMATNUMBER_INVALID
  203.                            srcErrorSource = ("select errordesc, hexcode from transfererrors "
  204.                                              "where cause='ERR_FORMATNUMBER_INVALID'")
  205.                            cursor.execute(srcErrorSource)
  206.                            errStorageA = cursor.fetchall()
  207.                            for row in errStorageA:
  208.                                errKey = row[0]
  209.                                errHash = row[1]
  210.                            cnx.connect()
  211.                            recQueryErrorNumb = ("insert into outbox(Text, DestinationNumber, "
  212.                                                 "TextDecoded, CreatorID) values "
  213.                                                 "('%s','%s','%s','PwC')" % (errHash, telephone, errKey))
  214.                            cursor.execute(recQueryErrorNumb)
  215.                            cnx.commit()
  216.                            cnx.close()
  217.                            #Reconnecting to database and updating message status
  218.                            cnx.connect()
  219.                            updateRquery = ("update inbox set chck=1 where "
  220.                                            "ID=%s" % toUR)
  221.                            cursor.execute(updateRquery)
  222.                            cnx.commit()
  223.                            cnx.close()
  224.                            #Wait for re-establish loop
  225.                            import time
  226.                            time.sleep(3)
  227.                            continue
  228.                    else:
  229.                        #Unknown message or command => ERR_TLPNUMBER_INVALID
  230.                        srcErrorSource = ("select errordesc, hexcode from transfererrors "
  231.                                                      "where cause='ERR_TLPNUMBER_INVALID'")
  232.                        cursor.execute(srcErrorSource)
  233.                        errStorageA = cursor.fetchall()
  234.                        for row in errStorageA:
  235.                            errKey = row[0]
  236.                            errHash = row[1]
  237.                            cnx.close()
  238.                        cnx.connect()
  239.                        recQueryErrorNumb = ("insert into outbox(Text, DestinationNumber, "
  240.                                                         "TextDecoded, CreatorID) values "
  241.                                                         "('%s','%s','%s','PwC')" % (errHash, telephone, errKey))
  242.                        cursor.execute(recQueryErrorNumb)
  243.                        cnx.commit()
  244.                        cnx.close()
  245.                        #Reconnecting to database and updating message status
  246.                        cnx.connect()
  247.                        updateRquery = ("update inbox set chck=1 where "
  248.                                                    "ID=%s" % toUR)
  249.                        cursor.execute(updateRquery)
  250.                        cnx.commit()
  251.                        cnx.close()
  252.                        #Wait for re-establish loop
  253.                        import time
  254.                        time.sleep()
  255.                        continue
  256.                else:
  257.                    #Authetication error, wron key => ERR_AUTHKEY_INVALID
  258.                    srcErrorSource = ("select errordesc, hexcode from transfererrors "
  259.                                                      "where cause='ERR_AUTHKEY_INVALID'")
  260.                    cursor.execute(srcErrorSource)
  261.                    errStorageA = cursor.fetchall()
  262.                    for row in errStorageA:
  263.                        errKey = row[0]
  264.                        errHash = row[1]
  265.                        cnx.close()
  266.                    cnx.connect()
  267.                    recQueryErrorNumb = ("insert into outbox(Text, DestinationNumber, "
  268.                                                         "TextDecoded, CreatorID) values "
  269.                                                         "('%s','%s','%s','PwC')" % (errHash, telephone, errKey))
  270.                    cursor.execute(recQueryErrorNumb)
  271.                    cnx.commit()
  272.                    cnx.close()
  273.                    #Reconnecting to database and updating message status
  274.                    cnx.connect()
  275.                    recQueryErrorNumb = ("update inbox set chck=1 where "
  276.                                                         "ID=%s" % toUR)
  277.                    cursor.execute(updateRquery)
  278.                    cnx.commit()
  279.                    cnx.close()
  280.                    #Wait for re-establish loop
  281.                    import time
  282.                    time.sleep()
  283.                    continue
  284.            else:
  285.                print("|| "+telephone+"\t\t"+timeO)
  286.                print("|| "+message+"\n\n")
  287.                balloon_tip("Mensaje recibido",message+"\nDe: "+telephone+"\t"+timeO)
  288.                file = open("smscenter.log","a")
  289.                file.write("Message was received at: "+timeO+"\n")
  290.                file.write("----------------------------------------\n")
  291.                file.write("|| "+telephone+"\n")
  292.                file.write("|| "+message.encode("utf8")+"\n")
  293.                file.write("-----Length of sms: "+str(lengM)+"\n")
  294.                file.write("-----Recognize: \n\n\n")
  295.                file.close()
  296.                cnx.close()
  297.                cnx.connect()
  298.                updateRquery = ("update inbox set chck=1 where ID=%s" % toUR)
  299.                cursor.execute(updateRquery)
  300.                cnx.commit()
  301.                cnx.close()
  302.                import time
  303.                time.sleep(3)
  304.                continue            
  305.  
  306. def readWh():
  307.    while True:
  308.        cnx2.connect()
  309.        lastRquery2 = ("select UpdatedInDB, TextDecoded, SenderNumber, ID from inbox where "
  310.                       "chck=0 order by UpdatedInDB asc limit 1")
  311.        cursor2.execute(lastRquery2)
  312.        regL2 = cursor2.fetchall()
  313.        if not regL2:
  314.            cnx2.close()
  315.            cnx2.connect()
  316.            queryTrunc = ("delete from inbox where chck=1")
  317.            cursor2.execute(queryTrunc)
  318.            cnx2.commit()
  319.            cnx2.close()
  320.            import time
  321.            time.sleep(3)
  322.            continue
  323.        else:
  324.            for row in regL2:
  325.                timeReceived = row[0]
  326.                timeReceivedC = str(timeReceived)
  327.                timeReceivedO = timeReceivedC[10:]
  328.                messageRec = row[1]
  329.                telephoneRec = row[2]
  330.                idRec = row[3]
  331.                cnx2.close()
  332.            print("Hola menor")
  333.            cnx2.connect()
  334.            queryA = ("insert into inboxencrypt(id, UpdatedInDB, TextDecoded, SenderNumber) "
  335.                      "values (%s, %s, AES_ENCRYPT('%s', (select AES_DECRYPT(cryptkey, '373630303a3a3') from decrypkey)), "
  336.                      "AES_ENCRYPT('%s', (select AES_DECRYPT(cryptkey, '373630303a3a3') from decrypkey)))")
  337.            cursor2.execute(queryA)
  338.            cnx2.commit()
  339.            cnx2.close()
  340.            #Drop message
  341.            cnx2.connect()
  342.            queryB = ("update inbox set chck=1 where "
  343.                      "ID=%s" % idRec)
  344.            cursor2.execute(queryB)
  345.            cnx2.commit()
  346.            cnx2.close()
  347.            cnx2.connect()
  348.            queryC = ("delete from inbox where chck=1")
  349.            cursor2.execute(queryC)
  350.            cnx2.commit()
  351.            cnx2.close()
  352.            continue
  353.  
  354. def sentWh():
  355.    while True:
  356.        cnx3.connect()
  357.        lastRquery3 = ("select UpdatedInDB, InsertIntoDB, SendingDateTime, DestinationNumber, "
  358.                       "TextDecoded, ID, Status, CreatorID from sentitems where chck=0 order by UpdatedInDB asc limit 1")
  359.        cursor3.execute(lastRquery3)
  360.        regL3= cursor3.fetchall()
  361.        if not regLr:
  362.            cnx3.close()
  363.            cnx3.connect()
  364.            queryTrunc1 = ("delete from sentitems where chck=1")
  365.            cursor3.execute(queryTrunc1)
  366.            cnx3.commit()
  367.            cnx3.close()
  368.            import time
  369.            time.sleep(3)
  370.            print("Hola menor")
  371.            continue
  372.        else:
  373.            for row in regL3:
  374.                timeUpdated = row[0]
  375.                timeInsert = row[1]
  376.                timeSent = row[2]
  377.                telephoneSent = row[3]
  378.                messageSent = row[4]
  379.                idSent = row[5]
  380.                status = row[6]
  381.                creator = row[7]
  382.                cnx3.close()
  383.            cnx3.connect()
  384.            print("Hola menor")
  385.            queryD = ("insert into sentencrypt(id, UpdatedInDB, InsertIntoDB, SendingDateTime, "
  386.                      "DestinationNumber, TextDecoded, Status, CreatorID) values "
  387.                      "(%s, '%s', '%s', '%s', "
  388.                      "AES_ENCRYPT('%s', (select AES_DECRYPT(cryptkey, '373630303a3a3') from decrypkey)), "
  389.                      "AES_ENCRYPT('%s', (select AES_DECRYPT(cryptkey, '373630303a3a3') from decrypkey)), "
  390.                      "'%s', AES_ENCRYPT('%s', (select AES_DECRYPT(cryptkey, '373630303a3a3') from decrypkey)))"
  391.                      % (idSent, timeUpdated, timeInsert, timeSent, telephoneSent, messageSent, status, creator))
  392.            cursor3.execute(queryD)
  393.            cnx3.commit()
  394.            cnx3.close()
  395.            #Drop message
  396.            cnx3.connect()
  397.            queryZ = ("update sentitems set chck=1 where "
  398.                      "ID=%s" % idSent)
  399.            cursor3.execute(queryZ)
  400.            cnx3.commit()
  401.            cnx3.close()
  402.            cnx3.connect()
  403.            queryE = ("delete from sentitems where chck=1")
  404.            cursor.execute(queryE)
  405.            cnx3.commit()
  406.            cnx3.close()
  407.            import time
  408.            time.sleep(3)
  409.            continue
  410.  
  411.  
  412. if __name__ == '__main__':
  413.    print("Be sure you have Windows pop-ups notifications enabled.\n\n")
  414.    print("SMS Center will show pop-ups notifications when message is being received."
  415.          "\nThis window need to be open at anytime.")
  416.    Thread(target = newWh).start()
  417.    Thread(target = readWh).start()
  418.    Thread(target = sentWh).start()
  419.  
4  Foros Generales / Dudas Generales / Traer datos de una página web a una computadora específica en: 27 Junio 2017, 21:21 pm
Hola, buen día. Tengo una pregunta que creo no sea posible pero aquí va de todas formas:

Yo tengo una página alojada en Heroku en donde tengo una especie de bot que interactúa con PostgreSQL y corro una base de datos local MySQL (luego hago la migración), la cuestión es que yo quisiera poder visualizar como un log de todas las conversaciones que le llegan al bot desde la página web pero en mi computadora sin necesidad de entrar a un panel de administrador en la misma página, ¿es posible transferir información de la página web y almacenarla, por ejemplo, en una base de datos a nivel local? Por cierto, estoy trabajando con NodeJS.

Gracias y buen día.
5  Foros Generales / Dudas Generales / [DUDA] Problema de lectura en una tabla de MySQL en: 26 Junio 2017, 17:56 pm
Hola, buen día. Tengo una interrogante con respecto a MySQL:

Actualmente estoy programando un Centro de Mensajería usando una librería externa y python. El problema radica en lo siguiente: la librería externa hace uso del módem y la base de datos, cada mensaje que recibe el módem, la librería lo procesa y lo envía a la base de datos automáticamente (la tabla llamado inbox, específicamente), ese es un servicio que se está ejecutando constantemente para detectar alguna recepción y guardarla automáticamente; ahora en python (al mismo tiempo que se ejecuta el servicio que os he dicho) se ejecuta un script que es un bucle que está leyendo la tabla inbox constantemente en busca de alguna actualización de la tabla (es decir, cuando llegue un mensaje nuevo) y cuando la tabla se actualiza (o debería), que llega un mensaje nuevo, lanza una notificación que se muestra en Windows, el ciclo en python es infinito (while True) por lo que nunca se detiene de leer la tabla inbox.

Cuando inicio ambos, funciona la recepción, almacenamiento y notificación perfectamente, pero una vez que han transcurrido 5 o 10 minutos pareciera que todo deja de funcionar aunque ninguno de los 2 muestra error; el módem no recibe mensajes, tampoco envía (también tengo una monitor que me muestra datos sobre el módem, tales como la señal, etc, este tampoco se actualiza).

Quisiera poder resolver esto, pero no sé lo que está sucediendo, pareciera que no permitiera tantas peticiones a la tabla (quizás por el bucle del script en python) o es que se le cae el servicio al módem.

¿Alguna idea sobre cómo solucionar este problema?
6  Foros Generales / Dudas Generales / [DUDA] ¿La IA y las bases de datos se llevan de la mano? en: 25 Junio 2017, 18:50 pm
Hace poco tiempo vengo trabajando en inteligencia artificial aplicando un poco de machine learning en python, el problema surge cuando por ejemplo le enseño ciertos patrones de cualquier cosa y lo guardo en un arreglo o diccionario. Obviamente todo esto se pierde cuando me salgo del programa, ahora aquí va mi pregunta:

¿Para los trabajos de inteligencia artificial actualmente también se usan bases de datos como el cerebro de la inteligencia artificial (es decir, donde se guarda todo sus aprendizajes, patrones, etc) o simplemente lo hacen almacenando datos en la memoria (arreglos, variables)?

Entonces por ejemplo, si es así (que usan bases de datos) ¿utilizan tales como MySQL, MongoDB, Cassandra, etc, o un tipo diferente de base de datos?

Entonces me imagino que si utilizan base de datos utilizarán muchas tablas o colecciones, y muchos registros, índices, etc, ¿verdad?

Agradezco su respuesta a esta duda, buen día.
7  Foros Generales / Dudas Generales / Servidores web, routers, conmutadores, internet. en: 5 Junio 2017, 19:37 pm
Hola, amigos, buenas tardes.

Hace un tiempo para acá tengo ciertas dudas con respecto a lo que mencioné en el título de esta publicación, ya he publicado antes que estoy en una empresa que está desarrollando una aplicación web, etc, etc. Pero, yo solo me encargo de la parte de lo que es programación, nada de infraestructura, aunque esto no quiere decir que yo me limite a aprender tales cosas, por ende publico esto a ver si pueden aclararme algunas dudas.

1. Supongamos que yo acabo de comprar un servidor físico, o varios, digamos unos cinco; he comprado los conmutadores, cables rj45 y routers, y tengo 3 computadoras personales y/o monitores... ¿cómo es que tengo que armar todo para que yo pueda comunicarme entre cada servidor a nivel interno? ¿Me podría decir o narrar mas o menos como es el proceso para armar todo eso?

2. He oído que los cables rj45 y los conmutadores solo pueden transferir una cantidad límite de datos (10/100/1000 megabytes creo), ¿acaso no existen de más capacidad o también las grandes empresas usan esos?

3. Con esto mismo de la empresa y la aplicación web que se estaba montando, me dijeron que se necesitaba, para la cantidad de usuarios que iba a manejar (la aplicación es sobre videos streaming) aproximadamente 50000 - 100000 usuarios diarios se necesitaba una gran cantidad de velocidad de internet, recuerdo que me dijeron entre 300.000 mb  y 500.000 mb entre subida y bajada, ¿cómo es que hago yo para conseguir un contrato o no sé cómo se haga, de esa capacidad? Por ejemplo, y siempre me he preguntado, ¿quién o quienes le proveen el internet a aplicaciones como YouTube, Twitch, etc? Podrían explicarme más o menos como es que es eso. Yo he oído que hay empresas como AT&T que son las que manejan todo eso (están el Tier 1 del internet), pero aún no entiendo muy bien eso, les agradecería un montón.



Espero puedan aclararme todas las preguntas, si me equivoco en algo, díganmelo, siempre es bueno aprender algo nuevo. Gracias y buen día.
8  Programación / Desarrollo Web / Aplicación Web de Alto Tráfico en: 25 Mayo 2017, 18:23 pm
Hola a todos, buenas tardes, tengo una duda, de hecho una gran duda.

Estoy por desarrollar una aplicación web, de alto tráfico: la aplicación trata literalmente de que alrededor de 50.000 personas graben videos en directo, ya sea desde su móvil android o iOS (se hará una aplicación para cada una de estas plataformas) y estos puedan ser visualizados por cualquier persona en directo, pudiendo tener a 100.000 personas visualizando una emisión, etc. Algo así es la aplicación que se está por desarrollar en mi empresa.

Con esto, he pensado incluir los siguientes lenguajes o frameworks: Java para Android, Swift para iOS, para front-end obviamente html, css, jvscript, pero para el back-end no estoy muy seguro de cual soporta un tráfico de esa magnitud o procesar todo ese tipo de información, por lo que estoy decidiendo entre Go y Django, tengo un equipo dispuesto a invertir tiempo en cualquier lenguaje desconocido para implementar esta aplicación, pero no estoy definido por cualquier o.. en que sectores de la aplicación puedo implementar cada uno.

¿Que opinan de los lenguajes/frameworks que he mencionado en comparación con esta aplicación? ¿Cómo ven el desempeño de cada uno de ellos? ¿Qué lenguajes me recomiendan incluir en la aplicación? ¿Cómo y en que lado, sector puedo explotar al máximo cada lenguaje?

Por cierto, tenemos definido al gestor de base de datos a MongoDB.

Espero puedan ayudarme, díganme o sugieranme en qué usar cada lenguaje, en qué se le puede sacar provecho a cada uno de ellos, para qué sirve uno que otro no, etc, etc.

Gracias y espero que puedan ayudarme.
9  Informática / Hardware / Vida restante de un disco duro en: 8 Mayo 2017, 06:38 am
Hola a todos, les quería hacer una pregunta, ¿cuánto creen que le queda de vida a este disco duro http://subefotos.com/ver/?63f3439299c6a08e095d58162041475ao.png
10  Foros Generales / Dudas Generales / Dudas generales: sistemas operativos y procesadores en: 7 Mayo 2017, 14:09 pm
Hola, chicos del foro. Buenos días.

Tengo algunas preguntas que verdaderamente quisieran que me respondieran, no he encontrado información acerca de ello, por lo que aquí las publico para ver si pueden responder las que sepan, o aclararme, al menos, un poco la duda. Aquí van (estas no son todas las preguntas, es que por ahora no recuerdo las demás):

1. No sé si es en el proceso de fabricación (que supongo que es allí), qué es lo que hace; qué material o las dimensiones, no sé; qué es lo que hace que una memoria RAM o una unidad USB sea solo de 2 GB o de 4 GB o de 32 GB, ¿qué es aquello que lo limita? Supongo que tiene que haber algo que limite la capacidad, quizás sea usar más un material en el proceso de fabricación u otra cosa, pero ¿qué es?

2. Cuando se escribe un sistema operativo (supongo que esta pregunta va para personas más experimentadas) que es lo primero (en específico) que se empieza escribiendo, ¿acerca de qué?, o sea, porque uno puede decir: "tienes que escribir el bootloader o el kernel", pero esas son ideas muy generales, me imagino que uno sigue más o menos un patrón al momento de escribir un bootloader o un kernel, ¿qué es lo primero o lo esencial que se empieza escribiendo al momento de realizar un sistema operativo?

3. No sé si han oído acerca de la máquina Watson de IBM (pura inteligencia artificial), dicen que los que lo hicieron (el grupo que trabajo en eso de IBM) almacenaron toda la información en la memoria RAM porque tenían que tener un acceso mucho más veloz a la información (y hasta ahora lo mantienen así), ¿eso quiere decir que hacen funcionar a la memoria RAM como un disco duro? ¿Es muy difícil hacer eso llevándolo a la programación (en el caso de que yo quisiera hacerlo y contara con un número amplio de memorias RAM y procesadores) en bajo nivel, que si en el lenguaje C o Ensamblador?

4. Esta pregunta la verdad me ha tenido pensativo hace tiempo, ¿como es que hacían en lo tiempos cuando no habían unidades USB, saben cuando las empresas terminaban de fabricar los procesadores, ya ahí todos sabemos que pueden reconocer entre sí o no, etc, etc, pero, cómo es que hacían para introducirle el código fuente de un sistema operativo (UNIX por ejemplo) sin tener ninguna interfaz para escribirlo, me imagino que antes de crear un editor de texto tuvieron que escribirlo para que el procesador lo creara en una interfaz y así pudiera programar desde ahí, pero como hicieron para crear eso antes? ¿Como le introducían el código fuente al procesador sin ninguna interfaz que te permitiera escribirlo como ahora, sin tener IDE ni nada?


Espero que me puedan aclarar algunas de estas preguntas que tengo, por ahora no recuerdo las demás pero estoy seguro de que las recordaré, muchas gracias y buen día.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines