Paneles solares para carreteras!

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,

All my life waiting for ‘&B’ and now is comming :-)

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,

Helper para leer .xlsx y componerlo en un DataGridView

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 dsModelAs 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, 410)
                    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 IntegerAs 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 NothingThen
                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 IntegerOptional startingAt As Integer = 0Optional endingAt As Integer = 0As 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 StringAs 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,

No todos los bluetooth son iguales… alguien lo pone en duda?

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,

Ocho años, que se dice pronto…

Ea!

Motivado por mi amigo Jose Maria de VariableNotFound… que cumple 8 Años.

http://www.variablenotfound.com/2014/05/ocho-anos-que-se-dice-pronto.html

Me decido a FELICITAR el trabajo de este excelente profesional y gran persona. Os animo a sigáis su blog. De corazón “uno de los pocos que no tiene desperdicio”.

Pero…. Gran coincidencia! Pues NO ES EL UNICO J

Mi blog cumple también 8 Años!! En Abril de 2006 para ser más exactos:

http://msmvps.com/blogs/peplluis/archive/2006/04/11/90545.aspx

Pos na, pa poner métricas que rivalicen con los “güenos” y por curiosidad os diré que desde el 2008:

Han sido un total de 699 post haciéndome ocupar el 4 lugar en el ranking de MSMVPS y como no las estadísticas de clustrMaps hablan:

Del 4 Jul 2013 a 26 Mar 2014: 48,310 visitas

Estadísticas actualizadas 13 May 2014@09:52GMT: 57,006 visitas
Total desde 30 Jun 2008: 513,972. 24horas previas: 241.

Así que a falta de los datos y los bonitos quesitos del analytics, lo importante es que fuera bromas espero continuar teniendo salud, para poder continuar dando la “brasa” a todos los que amablemente me leéis. Y sobre todo para hacer la competencia al JoseMari! Jajajajaja!

Saludos! and Happy Reading!
PepLluis,

Basic 50th Aniversario «do you remember?»

Con VB4 en 1995 nos subió la bilirrubina!
Fue el año en que muchos empezamos a crecer desarrollando aplicaciones Cliente/Servidor!

Y para dar crédito te adjunto una foto del Manual 🙂

Han pasado casi 20 años! Después de repasarlo un poco y compararlo con lo que tenemos hoy en día… «tampoco estamos tan lejos!» jajajajaja!
Memory’s
PepLluis,