|
Mostrar Mensajes
|
Páginas: 1 2 3 4 5 [6] 7 8
|
51
|
Foros Generales / Foro Libre / Re: Los primeros símbolos en la tierra: el increíble descubrimiento en Israel
|
en: 12 Febrero 2021, 10:02 am
|
Igual ¿por qué el sarcasmo? si bien no demuestran nada tampoco niegan la existencia de una antigua civilización, o sea la posibilidad existe. Hay muchas cosas que no demuestran nada y no quitan la posibilidades.
En la vida hay muchas cosas que no se pueden demostrar ni negar su existencia, pero solo se hacen noticias de las chorradas más grandes e indemostrables, como por ejemplo las supuestas apariciones de Jesucristo en las galletas o en una taza de café. Y recuerdo una infinidad de noticias de descubrimientos similares que resultaron ser fraudes, como las figuritas mayas de Erich von Däniken, o el supuesto alienígena de medio metro que pusieron en un museo dentro de una vitrina de cristal, o unas supuestas cabezas humanas con un craneo muy alargado (no me refiero a los de la teoría de los vendajes para alargar craneos en la antigüedad), o supuestos huesos de "gigantes" extintos entre otros "descubrimientos", todo fraudes, pero la prensa bien que habla antes de tiempo para especular. Como diría Iker Jimenez, vivimos en la era de la infoxicación, con el sensacionalismo barato, tóxico e innecesario de los medios de comunicación y la prensa digital, que utilizan cualquier "posibilidad" (por muy estúpida que sea a veces) para publicar un titular sensacionalista y meterte la idea de lo que podría ser eso a pesar de que nadie lo pueda demostrar todavía. Mejor dejemos que los arqueólogos y expertólogos de estos temas cavernícolas hagan su trabajo y que la prensa publique una noticia fundada cuando tengan un mínimo de información con la que poder especular y que esté respaldada por evidencias científicas, y entonces y solo entonces podremos empezar a hablar de si son rayas o rallas o símbolos illuminatis o aceitunas, pero antes no. Saludos.
|
|
|
52
|
Foros Generales / Foro Libre / Re: Los primeros símbolos en la tierra: el increíble descubrimiento en Israel
|
en: 12 Febrero 2021, 07:48 am
|
No me entendiste el sarcasmo, lo que intento decir es que una ralla no demuestra absolutamente nada, al igual que una X en una firma no demuestra que el que firma es quien dice ser.
Cualquiera pudo haber hecho esas rallas por accidente, o frotando un material contra otro, pero no demuestra que sean símbolos de una antigua civilización. Y luego está la opción de que pudiera ser un fraude.
Saludos!
|
|
|
54
|
Programación / .NET (C#, VB.NET, ASP) / Re: Lista de Operadores Matematicos
|
en: 10 Febrero 2021, 23:11 pm
|
les compartire la solucion que encontre de momento. Si quieres micro-optimizar ese código entonces quizás podrías tratar de aplicar el ejemplo del usuario Serapis ya que ha invertido tiempo en hacerlo y es más completo o sofisticado que la solución actual que aplicaste, donde su ejemplo de usar Select Case / switch es más apropiado (y también más elegante, dicho sea de paso) que utilizar un bloque de condicionales else + contains ya que tienes un set de símbolos o valores fijos ( https://www.geeksforgeeks.org/switch-vs-else/ ). Además deberías intentar tener presente utilizar la asignación compuesta del operador de suma (+=) en tu variable "calculo" ( https://www.tutorialspoint.com/compound-assignment-operators-in-chash ), lo cual no optimiza el código pero simplifica bastante la comprensión del código fuente. De todas formas a mi no me convence el enfoque que ambos le dieron, en tu caso fíjate que al final estás tratanto con varias funciones de tratamiento de cadenas de texto como string.replace y string.trim, y luego haciendo distintas operaciones sobre un mismo valor numérico, para eso sería preferible que directamente lo simplificases construyendo un string completo con la expresión matemática y pasárselo a NCalc, pero bueno, por otro lado pienso que cualquier opción o solución es igual de válida mientras el resultado sea exitoso. pero si , con Ncalc simplifico esto estaria espectacular Poder se podría siempre y cuando le des el enfoque de construir un string / expresión matemática en lugar de hacerlo como lo estás haciendo actualmente, pero ya no merece la pena mientras tu código actual te funcione de forma exitosa no hay necesidad real de desecharlo o adaptarlo para hacer las cosas de forma distinta. Lo que yo te diría es que intentes considerar NCalc para futuras necesidades, por que te podrá venir de perlas. Saludos!
|
|
|
55
|
Sistemas Operativos / Windows / Re: Papel Tapiz con carpeta de imágenes
|
en: 10 Febrero 2021, 01:12 am
|
En vista de que por otros comentarios tuyos que vi en el foro al parecer utilizas VB.NET, te comento otras dos opciones utilizando directamente la API de Windows. La primera es mediante una llamada a la función 'SystemParametersInfo' pasándole el valor 'SPI_GETDESKWALLPAPER' (0x0073) al parámetro 'uiAction': https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx<DllImport("User32.dll", SetLastError:=True, CharSet:=CharSet.Auto, BestFitMapping:=False, ThrowOnUnmappableChar:=True)> Public Shared Function SystemParametersInfo(action As UInteger, uiParam As UInteger, <[In]> <Out> pvParam As StringBuilder, winIni As UInteger ) As <MarshalAs(UnmanagedType.Bool)> Boolean End Function
Modo de empleo: Public Shared Function GetCurrentWallpaperPath() As String Dim sb As New System.Text.StringBuilder(capacity:=260) If Not NativeMethods.SystemParametersInfo(&H73UI, CUInt(sb.Capacity), sb, Nothing) Then Throw New Win32Exception([error]:=Marshal.GetLastWin32Error()) Else Return sb.ToString() End If End Function
La segunda es mediante la función 'GetWallpaper' de la interfaz 'IActiveDesktop': https://msdn.microsoft.com/en-us/library/windows/desktop/bb776357%28v=vs.85%29.aspxImports System.Runtime.InteropServices Imports System.Text Namespace NativeMethods <ComImport> <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> <Guid("F490EB00-1240-11D1-9888-006097DEACF9")> Public Interface IActiveDesktop Function NotImplemented01() As Integer <PreserveSig()> Function GetWallpaper(<MarshalAs(UnmanagedType.LPWStr)> buffer As StringBuilder, bufferSize As Integer, reserved As Integer) As Integer Function NotImplemented02() As Integer Function NotImplemented03() As Integer Function NotImplemented04() As Integer Function NotImplemented05() As Integer Function NotImplemented06() As Integer Function NotImplemented07() As Integer Function NotImplemented08() As Integer Function NotImplemented09() As Integer Function NotImplemented10() As Integer Function NotImplemented11() As Integer Function NotImplemented12() As Integer Function NotImplemented13() As Integer Function NotImplemented14() As Integer Function NotImplemented15() As Integer Function NotImplemented16() As Integer Function NotImplemented17() As Integer Function NotImplemented18() As Integer End Interface End Namespace
Modo de empleo: Public Shared Function GetCurrentWallpaperPath() As String Dim typeActiveDesktop As Type = Type.GetTypeFromCLSID(New Guid("{75048700-EF1F-11D0-9888-006097DEACF9}")) Dim activeDesktop As IActiveDesktop = DirectCast(Activator.CreateInstance(typeActiveDesktop), IActiveDesktop) Dim sb As New System.Text.StringBuilder(capacity:=260) Dim result As Integer = activeDesktop.GetWallpaper(sb, sb.Capacity, 0) If (result <> 0) Then Marshal.ThrowExceptionForHR(result) End If Marshal.ReleaseComObject(activeDesktop) Return sb.ToString() End Function
|
|
|
56
|
Programación / .NET (C#, VB.NET, ASP) / Re: Lista de Operadores Matematicos
|
en: 9 Febrero 2021, 21:42 pm
|
No pierdas el tiempo ni reinventes la rueda, utiliza un evaluador de expresiones matemáticas. O bien eliges utilizar la función Eval de javascript (mediante el motor de JS de .NET), o bien eliges utilizar la librería de terceros NCalc: Eval y NCalc son metodologías que implican un tiempo lento de inicialización, pero ambas son robustas, a prueba de fallos. Aquí puedes ver el sofisticado procedimiento de análisis o data parsing y compilación de una expresión matemática con NCalc: https://github.com/ncalc/.../NCalcParser. En general, evaluar expresiones con NCalc es bastante más rápido que con Eval, esto sobre todo se nota al medir el tiempo de ejecución cuando llevamos a cabo muchas operaciones de forma consecutivas en búcle, y en fin, es una solución open-source. Ejemplo propio en VB.NET para validar sintaxis, y evaluar expresión: ''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Validates the syntax of an arithmetic expression. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <example> This is a code example. ''' <code language="VB.NET"> ''' Dim expr As String = "1 + ABC" ''' Dim isValid As Boolean = ValidateExpression(expr) ''' </code> ''' </example> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' <see langword="True"/> if the arithmetic expression does not contain syntax errors, ''' otherwise, <see langword="False"/>. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Function ValidateExpression(expr As String) As Boolean Dim calc As New Global.NCalc.Expression(expr) If calc.HasErrors() Then Return False End If Try Decimal.TryParse(CStr(calc.Evaluate()), New Decimal) Return True Catch Return False End Try End Function
''' ---------------------------------------------------------------------------------------------------- ''' <summary> ''' Evaluate and return the result of an arithmetic expression. ''' </summary> ''' ---------------------------------------------------------------------------------------------------- ''' <example> This is a code example. ''' <code language="VB.NET"> ''' Dim expr As String = "(1 + (2 - 2)) * (100 / 2.5)" ' = 40 ''' Dim result As Decimal = EvaluateExpression(expr) ''' </code> ''' </example> ''' ---------------------------------------------------------------------------------------------------- ''' <returns> ''' The resulting value. ''' </returns> ''' ---------------------------------------------------------------------------------------------------- ''' <exception cref="Global.NCalc.EvaluationException"> ''' </exception> ''' ---------------------------------------------------------------------------------------------------- <DebuggerStepThrough> Public Shared Function EvaluateExpression(expr As String) As Decimal Dim calc As New Global.NCalc.Expression(expr) Dim result As Decimal If calc.HasErrors() Then Throw New Global.NCalc.EvaluationException(message:=calc.Error) Else Try result = CDec(calc.Evaluate()) Return result Catch ex As Global.NCalc.EvaluationException Throw Catch ex As ArgumentException Throw New Global.NCalc.EvaluationException(message:=ex.Message) Catch ex As Exception Throw End Try End If End Function
Importante: NCalc no se limita solamente a evaluar expresiones de tipos numéricos, sino que además puede evaluar otros tipos como DateTime y comparaciones de caracteres entre strings, pero las funciones ValidateExpression y EvaluateExpression del código de arriba funcionarán de forma correcta solamente con los tipos simples numéricos, es decir integrales o de punto flotante ( https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/value-types#built-in-value-types ) ya que es el uso que se le pretende dar. Si prefieres hacerte el guiso por ti mismo, aquí tienes otras alternativas en C# (ordenados por fecha de antiguedad): Saludos.
|
|
|
57
|
Programación / .NET (C#, VB.NET, ASP) / Re: [Source Code] AmongUS.MOD | Multi Cheat
|
en: 9 Febrero 2021, 09:00 am
|
en mi epoca del 1.6 alrededor del 2000 se usaba el cdHack
Que recuerdos, yo también lo jugaba por aquel año, y lo que me asusté cuando me hicieron el "hack" del CD por primera vez (yo no tenía ni idea de programación por aquél entonces) el admin de una partida amenazándome con hackear mi PC xD. Años más tarde descubrí que se trataba de cierta vulnerabilidad. Consulta, como es el paso a paso para poder llegar a hacer este tipo de hacks?
Paso a paso nadie te va a enseñar a menos que pagues $$$ por el preciado tiempo de enseñanzas. **Aincrad** empezó sin tener absolutamente ni idea de nada sobre este tema, formulando preguntas en este foro, obteniendo respuestas y ayuda (sobre todo de un tal Elektro, cof, cof) y obteniendo así más y más conocimiento poco a poco. También aprendió por su cuenta investigando y a base de ensayo y error, claro está, y cada día aprenderá algo nuevo por que así es el mundo de la informática y de la programación. Es un proceso largo de aprendizaje. Cuando se trata de cheats / trainers para juegos online o mejor dicho para modos de juego multijugador online, a no ser que encuentres y utilices una API de terceros como en este caso la mencionada "AmongUsMemory" ( https://github.com/shlifedev/AmongUsMemory ) requerirás conocimientos muy avanzados de ing. inversa para destripar por así decirlo todos los valores y estructuras del juego, y luego sabiendo todo eso poder desarrollar un HUD como el de **Aincrad** para mostrar la info de la partida. **Aincrad** utiliza esta API de terceros como ya viste, primero por que existe y puede usarla en su beneficio, y segundo por que él no tiene el suficiente conocimiento de ing. inversa (por cierto, yo tampoco, hay que estudiar el tema años hasta tener un nivel avanzado y no estoy por la labor de hacerlo) como para desarrollar y reproducir las características de esa misma API por su cuenta, con esto quiero decir que si realmente te interesa hacer algo así en profundidad y desde cero sin depender del trabajo / APIs de otras personas... entonces debes aprender mucho de ing. inversa. El desarrollo de la interfaz de usuario con o sin semi transparencia es la parte más sencilla (aunque eso no significa que no requiera mucho empeño hacerla, si se quiere hacer bien). Puedes usar la librería SharpDX (wrapper de DirectX) por ejemplo, o utilizar otras metodologías. Los controles de la UI del programa de **Aincrad** son personalizados y de terceros también ( https://gunaframework.com/features/ ). Como ves no consiste en desarrollarlo absolutamente todo por uno mismo, sino en apoyarse en la utilización de código y recursos y herramientas y APIs y lo que sea de terceros para hacerlo. No quiero parecer condescendiente, pero es obvio que el ser humano trabaja mejor (o al menos más rápido) como sociedad colectiva, y en el mundo de la programación y de la programación bajo la plataforma de .NET Framework existe una infinidad de librerias / controles / herramientas a tu disposición que han sido desarrolladas por otros programadores, tanto gratuitas como comerciales, y el hecho de apropiarse de dichas herramientas (con permiso y con una mención al autor) no es algo poco profesional sino todo lo contrario, es una gran ventaja y una virtud el saber encontrar y utilizar dichas herramientas para optimizar el tiempo de desarrollo y el resultado final.
Por cierto, @**Aincrad**, es todo un detalle que salga el nombre de ElektroStudios en los colaboradores del proyecto. Seguro que esté donde esté te manda un saludo y te lo agradece. Saludos
|
|
|
59
|
Foros Generales / Foro Libre / Re: Así será la misión de la NASA a 16-Psyche, el asteroide que 'vale' 74 billones de dólares
|
en: 7 Febrero 2021, 14:03 pm
|
Pero no, el objetivo no es extraer el oro y traerlo de vuelta a la Tierra, sino que la misión es mucho más científica: investigar la composición de su núcleo, cómo se formó y, con ello, obtener resultados valiosos sobre cómo nacieron la Tierra y el resto de planetas. No puedo parar de reir. Cada vez que sale alguna noticia sobre NASA, es un chiste en si mismo. Sigo esperando a que se manifiesten sobre esa misión de colonizar la atmosfera de Venus montando una ciudad flotante de humanos usando globos en las nubes, nos lo prometieron para el año 2022... https://hipertextual.com/2014/12/venus-colonizacionhttps://www.xlsemanal.com/conocer/ciencia/20201023/venus-vida-planeta-conquista-espacio-misiones.htmlSeguro que el año que viene se pronunciarán al respecto. ¡SEGURO!. Ahora en serio, basura de agencia espacial la NASA que solo publica chorradas para llamar la atención y luego no hacen nada de lo que dicen, NADA. Buitres que prometen hacer (nuevos) logros por la humanidad solo para seguir recibiendo dinero de inversionistas y subvencionistas.
|
|
|
|
|
|
|