Os recomiendo la visualización de este excelente contenido para tener una visión extendida de lo que puede representar un escenario ideal para la próxima revolución tecnológica.
Internet of things – Intelligent Systems Opportunity
Saludos,
Os recomiendo la visualización de este excelente contenido para tener una visión extendida de lo que puede representar un escenario ideal para la próxima revolución tecnológica.
Internet of things – Intelligent Systems Opportunity
Saludos,
Recuerdo como si fuera ayer la primera vez que escuche el concepto “código abierto”. Luego volqué mi interés en desvelar los secretos del mismo devorando literatura entorno a la nueva filosofía, por aquellas épocas promulgada principalmente por el singular Richard Stallman.
En el fondo siempre tuve la sospecha de que alguna pieza no encajaba del todo en el recetario de dicha filosofía. Esa sospecha me sirvió de convencimiento para iniciar una incansable tarea de investigación que me permitiera desvelar que se ocultaba detrás de tan mágicas siglas.
Después de largos años de búsqueda, finalmente he podido desvelar el origen de una de las filosofías tecnologías que ha movilizado a la mayor masa de adeptos, simpatizantes, creyentes y practicantes de todas las épocas.
De forma inesperada y justo en una olvidada calle detrás del ‘Mercat de les flors’ de BCN he encontrado la prueba definitiva que evidencia empíricamente mi premonición… digitalizado en una vieja pizarra muestra sin lugar a dudas que : nuestras abuelas ya utilizaban código abierto!
Para los neófitos debéis considerar la gran importancia del descubrimiento, pues sin duda no todos los días podemos decir que hemos encontrado las fuentes de nuestro origen y con el mismo hecho poder responder de forma contundente la eterna pregunta “de dónde venimos?”.
La riqueza de las palabras es inagotable! 🙂
PepLluis,
Si estáis pensando en asistir o participar en uno de los eventos mas relevantes del año… el primer paso es definirlo para que cumpla con nuestras expectativas.
Podéis votar vuestras preferencias en el : Poll Codemotion 2014
Saludos!!
PepLluis,
Llevo mucho tiempo hablando de los «wearables» y su relación con el internet de las cosas. A menudo explico con pasión y convencimiento de la enorme oportunidad que tenemos frente al gran despliegue de tecnológica lista para ser usada, ciertamente es curioso percibir una sensación recurrente de algunas personas que de forma incontenible muestran en su cara una expresión que delata supuestos pensamientos de incredulidad, pensamientos que casi verbalmente podría traducir en frases como… de donde habrá sacado este chiflado tales ideas?
Esto no me preocuparía lo mas mínimo si dichas «expresiones» las observara en mis padres al contarles lo que significará la próxima revolución de internet, seguramente reaccionarían recordándome mi etapa de «Julio Verne» e «Isaac Asimov» cuando era Joven y probablemente inmaduro. Sin embargo lo preocupante es que esta sensación de «estar explicando fantasías» las recibo sobre todo cuando doy charlas, presento o propongo «nuevas o diferentes» formas de visualizar la potencialidad de recursos relacionados con el internet de las cosas delante de personas con perfiles tan diversos como empresarios, inversores o incluso algunos académicos!
Con independencia de tales perfiles, algunos en un derroche de sinceridad declaran no entender de lo que les estás hablando cuando haces referencia al «cloud» y a lo sumo para no ofender en tono de humor lo justifican diciendo que a su opinión «explicas humo o eres un anticipao»… ya veis el futuro es esperanzador! 🙂
No quiero ser muy critico, pero en muchos escenarios somos tan ‘papistas’ que a menudo en ciertas esferas nos creemos estar en lo último de la tecnología simplemente porque participamos en alguna de esas conocidas «leagues», montamos una 3D o programamos alguna de esas placas de electrónica con fama. Sin duda la forma fácil para «bombo, platillo, prensa y marca».
Con sinceridad no nos podemos permitir que nuestros futuros profesionales tengan la estrecha visión de que la tecnología se reduce a placas con nombre de frutas o un programa de simple bucle ejecutado en una placa «duino» controlando un Dron un Quad o un vehículo guiado. Es muy triste cuando hablando con algún estudiante que ha finalizado un grado de mecatrónica te explica que sabe programar «duinos»… pues lamentablemente eso también lo saber hacer el hijo de un amigo con poco mas de 10 años.
Por contra NO es quitar méritos! Nadie pone en duda de las excelentes capacidades didácticas de tales materiales, y de un montón de tecnología que nos ofrece un buen punto de entrada para la inspiración y desarrollo de las capacidades creativas, sin duda es un discurso adecuado. Aunque existe un paso más allá de las «Maker faire» o «Garage Maker» o las «Leagues’s» donde se dibuja una gran oportunidad para los que logren visualizar un escenario único e irrepetible donde las oportunidades de que los que sepan apostar por ello se multiplicaran sin duda por cien en el futuro.
Al fin y al cabo la perspectiva sobre los «Wearables» es que son una parte minúscula dentro la telaraña de posibilidades brindadas por ese «mix» donde confluyen hard y soft integrándose como parte fundamental de nuestro internet cotidiano : Personas, Dispositivos y Sistemas.
No pretendo hacer marca, simplemente creo que lo positivo es compartir opiniones y algún que otro corto para dar a conocer diferentes visiones, es importante conseguir una óptica global y un posicionamiento plural con mentalidad abierta. Esa formula nos permitirá descubrir y sacar máximo partido de todo lo que el panorama actual esta poniendo a nuestra disposición.
A todos los que tengáis inquietud de participar en nuestra nueva iniciativa para formar un grupo de trabajo entorno al IoT envíanos un correo a : spain_net[arroba]msn.com
Vuestras opiniones cuentan! 🙂
Os dejo un corto sobre Async, Await, como ya sabréis mejora mucho la respuesta del GUI… asi que ya no teneis excusa para dejar a la peña con el relojto esperando que terminen ciertas tareas.. :-))
Private cts As CancellationTokenSource Async Sub btnStart_Clik(sender As Object, e As EventArgs) Handles btnStart.Click btnStart.Enabled = False Try cts = New CancellationTokenSource Await Task.Run(Sub() longThingsProcessing(cts.Token) End Sub, cts.Token) Catch ex As Exception MessageBox.Show(ex.Message) End Try btnStart.Enabled = True End Sub Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click cts.Cancel() End Sub Sub longThingsProcessing(ct As CancellationToken) Try Dim charNumber As Integer = 0 For x As Integer = 0 To 200000 ct.ThrowIfCancellationRequested() charNumber += 1 If charNumber > 255 Then charNumber = 0 updateTitle(String.Format("Doing loop : {0}, Char {1}", x.ToString, Chr(charNumber))) Next Catch ex As Exception updateTitle("Operation was cancelled") End Try End Sub Delegate Sub textUpdate(text As String) Sub updateTitle(_text As String) If Me.InvokeRequired Then Dim _me As New textUpdate(AddressOf updateTitle) Me.Invoke(_me, _text) Else Me.Text = _text Me.Refresh() End If End Sub
Parece que cada vez mas, en cierta medida visionar el futuro es creer e imaginar lo imposible.
Muchos escépticos, vaticinan una compleja aceptación de los ‘weareables’ por un mercado que según los estudios dicen que los usuarios se aburren de utilizarlos con una media aproximada de seis meses.
Seguramente es cierto, lo que también es cierto es la imparable irrupción de potentes dispositivos procesadores a nivel de fabricantes lideres del sector, que hacen explotar al mercado en una hola imparable de posibles aplicaciones impensables hasta la fecha y a la par queramos o no auguran un futuro repleto de inteligentes «weareables».
Os recomiendo la lectura de John Morris sobre el posicionamiento de la industria en el «Computex 2014» hablando sobre las nuevas generaciones de procesadores ARM Cortex.
Internet of Things… esta despertando 🙂
http://www.zdnet.com/computex-2014-arm-shifts-focus-to-wearables-internet-of-things-7000030132/
Cuidaros,
PepLluis,
Hace un par de años estuve desarrollando un sistema de carga de vehículos eléctricos en la vía publica “cuando el plan Movele”
En mis conversaciones con profesionales siempre frivolizábamos sobre la posibilidad de convertir el asfalto en paneles solares…
Sabemos que miles de ingenieros despiertan con ideas paralelas pensando en cómo aportar soluciones a un determinado problema, la diferencia entre los buenos y los mediocres es que mientras creen en dichas soluciones hasta el extremo de llevarlas a cabo por muy alocadas que parezcan, los otros simplemente se ríen pensando que son quimeras imposibles.
Quizás debamos aprender de las locuras de algunos J
Os presento el Solar Freakin Roadways de sant diego… no tiene desperdicio!
https://www.youtube.com/watch?v=qlTA3rnpgzU#t=223
Ya me diréis que os parece.
PepLluis,
Imports System.Text
Module Module1
Private encoding As New UTF8Encoding
Sub Main()
‘int 64
Dim my_nibbles = &B0111_0011_0110_1001_0111_0101_0100_1100_0100_1100_0101_0000_0110_0101_0101_0000
‘
Console.WriteLine(«My hex : « + Hex(my_nibbles).ToString)
‘ byte array
Dim btes As Byte() = BitConverter.GetBytes(my_nibbles)
‘ retrieve string
Dim myName = encoding.GetString(btes)
Console.WriteLine(«My name : « + myName)
Console.ReadLine()
End Sub
End Module
Regards!,
PepLluis,
Atendiendo a la petición de Sefvense en los foros de desarrollo : http://social.msdn.microsoft.com/Forums/es-ES/42c2ade6-a9d8-4b8e-bbe0-79b9d07e794f/estoy-tratando-de-importar-un-documento-csv-a-un-datagridview-en-una-aplicacion-para-windows-form?forum=winformses
os anticipo un helper que estoy preparando para aquellos que necesitan leer de un Excel y presentarlo parcialmente en un DataGridView.
No olvidéis importar el «Microsoft.office.Interop» correspondiente.
Imports Excel = Microsoft.Office.Interop.Excel Public Class excelHelper Private workApp As New Excel.Application Private worksheet As Excel.Worksheet Private workbook As Excel.Workbook ''' <summary> ''' return a datatable with a customized content from xls sheet ''' </summary> ''' <param name="filePath"></param> ''' <param name="sheetName"></param> ''' <param name="headToFind"></param> ''' <param name="model"></param> ''' <returns></returns> ''' <remarks></remarks> Function xlsToDataset_CustomModels(filePath As String, sheetName As String, headToFind As Date, model As dsModel) As DataTable Try workbook = workApp.Workbooks.Open(filePath, , True) worksheet = xlsFindSheet(workbook, sheetName) If worksheet Is Nothing Then Throw New Exception(String.Format("worksheet : {0}, not found in this book.", sheetName)) Dim dt As New DataTable Select Case model Case dsModel.model_a Dim rowSecondColTitle = 7 Dim CellrangeFrom = 1 Dim CellrangeTo = 200 Dim fromColA As Integer = xlsFindColContent(headToFind, rowSecondColTitle, 4, 10) Dim fromColB As Integer = 3 Dim colAContent As String = "Total" dt = fillCustomDatasetModel_A("Descripción", CellrangeFrom, CellrangeTo, rowSecondColTitle, fromColA, colAContent, fromColB, fromColA + 1) Case dsModel.model_b ' whatever call Case dsModel.model_n ' more whatever End Select workApp.ActiveWorkbook.Close(False, filePath) workApp.Quit() Return dt Catch ex As Exception workApp.Quit() Return Nothing End Try End Function ''' <summary> ''' return a customized datatable Model A ''' </summary> ''' <param name="Title"></param> ''' <param name="rowRangefrom"></param> ''' <param name="rowRangeTo"></param> ''' <param name="rowForSecondColTitle"></param> ''' <param name="fromCol"></param> ''' <param name="whereContain"></param> ''' <param name="fillForCol_A"></param> ''' <param name="fillForCol_B"></param> ''' <returns></returns> ''' <remarks></remarks> Function fillCustomDatasetModel_A(Title As String, rowRangefrom As Integer, rowRangeTo As Integer, rowForSecondColTitle As Integer, fromCol As Integer, whereContain As String, fillForCol_A As Integer, fillForCol_B As Integer) As DataTable Dim dt As New DataTable() Dim val As Double dt.Columns.Add(Title) dt.Columns.Add(worksheet.Cells(rowForSecondColTitle, fromCol).Value) For index = rowRangefrom To rowRangeTo If Not (worksheet.Cells(index, fillForCol_A).Value Is Nothing) Then If worksheet.Cells(index, fillForCol_A).Value.ToString.Contains(whereContain) Then val = Convert.ToDouble(worksheet.Cells(index, fillForCol_B).Value) dt.Rows.Add(worksheet.Cells(index, fillForCol_A).Value.ToString.Remove(0, whereContain.Length + 1), val.ToString("#000,000")) End If End If Next Return dt End Function ''' <summary> ''' find col content into a row range ''' </summary> ''' <param name="findStr"></param> ''' <param name="findRow"></param> ''' <param name="startingAt"></param> ''' <param name="endingAt"></param> ''' <returns></returns> ''' <remarks></remarks> Function xlsFindColContent(findStr As String, findRow As Integer, Optional startingAt As Integer = 0, Optional endingAt As Integer = 0) As Integer For index = startingAt To endingAt If findStr = worksheet.Cells(findRow, index).Value Then Return index End If Next Return 0 End Function ''' <summary> ''' find sheet by name ''' </summary> ''' <param name="books"></param> ''' <param name="sheetName"></param> ''' <returns></returns> ''' <remarks></remarks> Function xlsFindSheet(books As Excel.Workbook, sheetName As String) As Excel.Worksheet Try For Each wb In workbook.Sheets If CType(wb, Excel.Worksheet).Name = sheetName Then Return wb End If Next Return Nothing Catch ex As Exception Return Nothing End Try End Function ''' <summary> ''' enum for to identify models ''' </summary> ''' <remarks></remarks> Enum dsModel model_a model_b model_n End Enum End Class
En este ejemplo componemos un datagridview con el modelo predefinido como «dsModel.model_a» donde leemos los totales a partir de la columna 7 buscando una fecha concreta, el contenido de los «rows» creados en el datagridview corresponden a los registros que contienen «Total» y su columna coincide con la fecha solicitada.
Dim excelObj = New excelHelper Dim findDate As New Date(2014,05,21) Dim sheetName = "SheetName" dgv.DataSource = excelObj.xlsToDataset_CustomModels(My.Settings.xlsFilePath, sheetName, findDate, excelHelper.dsModel.model_a)
Como digo es un punto de entrada para aportar una idea, pero me comprometo a componer un ejemplo completo que ayude en su comprensión.
Saludos,
PepLluis,
Es obvio, pero es curioso comprobar en propias carnes las decenas de matices a tener en cuenta cuando quieres compatibilizar algunos módulos de electrónica con los estándares adoptados en los dispositivos móviles.
Existen cientos de utilidades, a partir de enlazar un dispositivo con una pequeña electrónica y ese es mi ánimo… a los que tengáis interés por el tema contactar conmigo y le damos un empujoncito para crear un mini-catálogo de dispositivos y compatibilidades.
Si es de interés en cuanto pueda os compartiré como “emparejarlos” y posteriormente recibir/enviar datos con un simple proyecto en Visual Studio.
Que por intentarlo no quede! J
Aquí una muestra de nuestro intento en el \\publish :
Saludos,
PepLluis,