Friday, March 4, 2011

Boycott companies who want to destroy a free web



Companies, are just to money hunger these days. Don't they have enough billions stacked
on top of billions of dollars? I guess not. Greed is the mother of all evil! And we are
the ones who constantly suffered behind their greed.

The Free Software Foundation is asking, "In response, we're asking everyone who values a web free of restrictions and threats like this — and especially everyone who values the publication of audio and video files on the web." To Boycott MPEG LA patent pool members!

More information resources:
Google Free on two VP8 for youtube
Free Software Foundation Supporting WebM
Steve Jobs letter on flash

Friday, February 18, 2011

Chicken Scheme's zmq egg


Well, I looked further into zeromq after watching the youtube video and reading the guide.
My last post was just my curiosity about it. Zeromq is a messaging library with many different language bindings although I prefer to use scheme for most programming tasks. Moritz Heidkamp implemented an excellent chicken scheme language binding for zeromq. Zeromq eases the task of writing distributed applications so it can make our life easier and there is no need to learn erlang to accomplish writing distributed programs.

Compared to other language bindings for this library the chicken scheme zmq egg provides a much higher level of abstraction than most of the other language bindings for zeromq messaging library. In my opinion it's a much easier to use binding for working with zeromq.

So I thought I'll try my hand at writing the example programs in scheme from the guide using the zmq egg.
hwserver.scm
(use zmq format loop ports)

(define serializer (make-parameter write))
(define deserializer (make-parameter read))


(define (main)
  (let ((responder (make-socket 'rep))
        (reply "World"))
    (bind-socket responder "tcp://127.0.0.1:5555")
    (loop
     (format #t "Received request: ~A~%"
             (with-input-from-string
                 (let goto ()
                   (let ((msg (receive-message responder)))
                     (or msg (begin
                               (thread-wait-for-i/o! (socket-fd responder) #:input)
                               (goto)))))
               (deserializer)))
    ;; Do some work
     (sleep 1)

     ;; Send reply back to client
     (send-message responder
                   (with-output-to-string (cut (serializer) reply))))))
(main)

hwclient.scm
(use zmq format ports miscmacros)

(define serializer (make-parameter write))
(define deserializer (make-parameter read))

(define (main)
  (let ((sock (make-socket 'req)))
    (format "Connecting to hello world server...~%")
    (connect-socket sock "tcp://127.0.0.1:5555")

    ;; Do 10 requests, waiting each time for a response
    (dotimes (request-cnt 10)
             (let ((request "Hello"))
               (format #t "Sending request ~D...~%" request-cnt)
               (send-message sock
                             (with-output-to-string (cut (serializer) request)))

               ;; Get the reply
              (format #t "Received reply ~D: ~A~%"
                        request-cnt
                        (with-input-from-string
                            (let loop ()
                              (let ((msg (receive-message sock)))
                                (or msg (begin
                                          (thread-wait-for-io! (socket-fd sock) #:input)
                                          (loop)))))
                          (deserializer)))))))
(main)

Networking just got a little more simpler with zeromq. Thanks to Pieter Hintjens, Moritz Heidkamp an every one on #chicken and #zeromq at irc.freenode.net.

Saturday, February 12, 2011

ØMQ with scheme language bindings are nice ;)



'(ØMQ-language-bindings)
But just how nice? Guess I'll have to investigate further.

Monday, January 17, 2011

Facebook giving Developer's access to user's information

Looks like Facebook is allowing developer's even more access to their users private info.
Now that just makes me wonder even more how the developers may try to use the info.

In my opinion it's just a violation of every user's privacy, if John Random Hacker
decides they have other ideas in mind on how to use the users information.

Facebook Privacy Concerns

Saturday, January 15, 2011

Automate software builds with slackbuild

My good friend Tyce once asked me, "Man don't you get tired of watching software compile?"

Honestly I never look at it like that or from his state of mind.
Although most people claim that they don't have the time to wait
on software to compile, it's just my preferred way of doing things.

So my friend statement made me think about learning how to automate
compiling software on Slackware GNU/Linux. Although I knew Slack
had slackbuild scripts so I figure it was time I learned how to
write one.

My usual method entailed using NetBSD's pkgsrc package to quickly
build software packages, but now it's the Slack way via slackbuilds.

So I spent most of today reading just how to write slackbuild scripts.
Then once I read and understood how to write the script I commence writing one.
The next time I talk to my friend I'll let him I've automated the process.

Writing a SlackBuild Scriptbu

Wednesday, January 12, 2011

Emacs + Scheme IDE

Recently I just be relaxing and being lazy. Although over the last few
days I had been contemplating on setting up myself a more comfortable
environment for scheme within Emacs for Scheme programming.

Seeing that I am not a WIMP addict, so an Emacs solution will suffice for my purposes.  In the pursuit of automatic indenting on hitting the return when
working the REPL or with a file.

After searching I've ran across iuscheme from Indiana University.

Now I can use Ctrl-C Ctrl-I to re-indent definitions quickly and easily and
it automatically indents my code properly at the REPL and within files.


I am no scheme expert just another scheme enthusiast looking for a
comfortable work environment with Scheme '(Larceny) and Emacs.

Saturday, January 8, 2011

Me and my Text Editor

Comfortable most people are with there choice of text editor.
And my comfort zone when it comes to editing is gnu/Emacs.
Since learning to use it, Emacs never fails to surprise me.

So I just learn what I need to know about Emacs to get done
what I need do. Recently while hanging out on #emacs@irc.freenode.net.

I learned that Emacs could be run as a daemon, though I've
seen it mention in the info documents. I never really messed
around with it much.

Until the last couple of weeks of using it and I'm loving it ;)

Emacs as Daemon