Refactorizando, Ratchet.

Ratchet


Ayer terminé de refactorizar el código de un cliente, básicamente una aplicación que actualmente utilizaba polling via AJAX. La cosa se estaba poniendo poco elegante y complicada así que decidí buscar otra solución.
Me encontre con WebSockets, una interesante solución no tan nueva pero que me vino como anillo al dedo. Utilicé la implementación de Ratchet ( si la url es Socketo.Me... es genial por algun motivo)  para PHP y cree un service provider para Laravel.

Escribiría un tuto de Ratchet pero la realidad es que esta muy bien documentado y me resulto muy fácil de implementar. Tengo ganas de ver como desarrollar alguna otra cosa con websockets, en especial con Ruby y/o Golang. Espero hacerme un tiempo para eso.

Tenía bastante código para refactorizar como para garantizar un inicio de semana movidito así que ayer a la madrugada termine de desarrollar la aplicación en cuestión.

Aquí una bonita respuesta de StackOverflow que muestra las alternativas a utilizar websockets, ventajas y diferencias.


Silicon Valley


Estoy mirando esta serie recomendada por un amigo y la verdad es que me parece bastante buena, refleja muchos problemas que surjen de tener una compañía de software y de desarrollo en general, obviamente con las exageraciones y extravagancias propias de un Sitcom.


Coursera


Me inscribí a aun curso de criptografía dictado por un profesor de la universidad de Stanford en Coursera, tengo bastantes expectativas con eso. Comienza el 20 de Abril.


Blog


Tengo que agregarle tags a esta cosa e implementar image upload como en el blog viejo pero...


Working with beego pagination

 I wanted to take a while to explain how to use this library easily. Basically we begin adding the following import:

    "github.com/astaxie/beego/utils/pagination"

Paginator class is pretty straightforward, so in our code we just have to make use of the current controller Context, define how many posts per page we want and the total count of posts in the query:

    paginator := pagination.SetPaginator(this.Ctx, postsPerPage, countPosts)

 

In the view we can format our paginator in the following way:

 

{{if .paginator.HasPages}}
<ul class="pagination pagination">
    {{if .paginator.HasPrev}}
        <li><a href="{{.paginator.PageLinkFirst}}">First</a></li>
        <li><a href="{{.paginator.PageLinkPrev}}">&laquo;</a></li>
    {{else}}
        <li class="disabled"><a>First</a></li>
        <li class="disabled"><a>&laquo;</a></li>
    {{end}}
    {{range $index, $page := .paginator.Pages}}
        <li{{if $.paginator.IsActive .}} class="active"{{end}}>
            <a href="{{$.paginator.PageLink $page}}">{{$page}}</a>
        </li>
    {{end}}
    {{if .paginator.HasNext}}
        <li><a href="{{.paginator.PageLinkNext}}">&raquo;</a></li>
        <li><a href="{{.paginator.PageLinkLast}}">Last</a></li>
    {{else}}
        <li class="disabled"><a>&raquo;</a></li>
        <li class="disabled"><a>Last</a></li>
    {{end}}
</ul>
{{end}}