Twitter Weekly Updates for 2012-05-13

May 13th, 2012
  • Looking for ideas for a Twilio app as a side project. Just for fun, and to tinker with Twilio. Any suggestions? #
  • @migueldeicaza wouldn't work.The phone networks are the first to go.but how about a twilio propaganda application.Used by both sides.profit! #
  • Shocked that my last project at the hospital which my boss assured me will only take a few days to complete is going to take much longer. #
  • In case it wasn't obvious, I was being sarcastic. I told him it will take much longer due to delays and he insisted that it wouldn't. (sigh) #
  • The applications at the hospital are full of security vulnerabilities. I reported them but nothing was/is going to be done about it. #
  • At the end I was told that security is not a part of my job (programming medical applications). What would you have done? #
  • What's the point of having a spec if none of the implementations conform. I'm looking at you HL7 #
  • Samples initially sent by the consultant don't look anything like the HL7 messages sent by the system.What part of sample don't u understand #
  • @catch The sign-in link on your homepage is generating a 404. #

Powered by Twitter Tools

Twitter Weekly Updates for 2012-04-29

April 29th, 2012
  • Used mirth connect for my farewell project at the hospital. Hope nobody stops it. But awesome product from @mirthcorp #

Powered by Twitter Tools

Twitter Weekly Updates for 2012-04-22

April 22nd, 2012
  • Writing unit tests is not fun. Can I possible outsource this to my cat? #
  • If you're not careful you can spend a lot of time writing unit tests. How much is enough? #
  • It's funny how healthcare is always trying to reinvent solutions simply because people are too stubborn to admit mistakes #
  • Translated Turkish drama series are a conspiracy by the Lebanese government to distract people from the real problems they suffer from. #
  • Because, after all, how can you worry about the bad economy if Shams is pregnant from but is unable to marry Ahmad! #

Powered by Twitter Tools

Twitter Weekly Updates for 2012-04-15

April 15th, 2012
  • Decided to change careers and will be moving on from healthcare IT. Hopefully I'll be able to share more in the weeks to come. #
  • The new Google analytics is an improvement but needs some getting used to. Nice visualizations though… #

Powered by Twitter Tools

Twitter Weekly Updates for 2012-04-08

April 8th, 2012
  • Customer support at Linode is excellent. Been a customer for some time now, always been very fast to respond and very helpful. #
  • Upgraded 2 Ubuntu installations to the Precise beta. Bad experiences both times and a giant waste of time. This used to be much smoother… #

Powered by Twitter Tools

Twitter Weekly Updates for 2012-04-01

April 1st, 2012
  • rocking android ICS on my Samsung galaxy s2 thanks to the resurrection From. So far so good. #

Powered by Twitter Tools

Jack Compiler

March 1st, 2011

There are 10 types of programmers in the world, those who have written a compiler and those who can’t read binary.

I’ve never written a compiler. At college, I had to drop the class because of a conflict and have always wanted to write one ever since. Even if just to say that I can.

The Elements of Computing Systems has a chapter focusing on building a compiler for the computer that is built throughout the book. The compiler is for an object oriented language called Jack.

Jack, the language, is designed to be simple enough to make the compilation process easier, but that doesn’t mean that it’s not an expressive language. In later chapters in the book, Jack is used to implement parts of the OS and other applications.

The grammar is easy enough and the author claims that it’s almost an LL(0) requiring only a look-ahead token in parsing expressions. The parser for it is a simple recursive descent parser.

I tried to conform to how the book does things, but preferred to do my own thing if it made more sense. It’s also still a work-in-progress and I’ll keep on working on it as time allows.

This is not a full compiler and is definitely no where near real compilers, but it’s a start. And I’d like to dedicate it to my muse without whom I would’ve given up a long time ago.

You can find the code over at my github repository at https://github.com/alaasalman/jackcompiler.

SpringerLink pdf manipulation scripts

May 29th, 2010

The SpringerLink pdf manipulation scripts are now up on github. You can get them at http://github.com/alaasalman/pdfmaniputil.

I am slowly moving most of the public projects and code over to github so that people can use it and change it more effectively.

Book Review: From Program To Product

April 26th, 2009

Two years ago, I learned that you can be a brilliant programmer and write awesome code but if your code doesn’t help solve some problem or doesn’t ease someone’s pain, then you’re not really doing your part.

This is exactly the lesson that this book tries to drive home. It goes through the different aspects of creating a product from the programming and support to the licensing and legal side. The book also includes several interviews with people who have already done that. Personally, I found the interviews the most enjoyable part of it all.

The interesting part, to me, in all of this is the applications described in those interviews were really boring. As a programmer, they’re not exactly the kind of work that we love to do. I mean come on, a product to manage a stable? Tracking horses and lessons? Zzzzzz…. Not exactly the kind of work that would keep you up coding all night long. However, the applications were a success because they helped people to do their job better. They eased the pain of doing those things manually and, who knows, maybe gave someone less stress and more time to spend with their family. That is certainly what computers and programs are meant to do. To help us do what we’re supposed to do. And we’re all here to do what we’re all here to do.(The Matrix reference)

It took me a while to learn that lesson. I first noticed it when, as a freelancer, I had to work on a few jobs just to pay the bills. The tasks weren’t enjoyable to me as a programmer, I was just doing it for the money. And as a programmer, a lot of those tasks were very simple to do. Yet the people who I worked with were very grateful that I helped. And, as a business and a person, there’s nothing like a happy customer.

On the cons side of things, this wasn’t exactly a page-turner. Don’t get me wrong, the book is interesting. But recently I’ve been reading a lot of books about entrepreneurship and starting a business. And aside from the inspiration, once you’ve read one, you’ve read them all.

Overall, I give this book 3/5 stars. You can get the book from From Program to Product: Turning Your Code into a Saleable Product (Expert’s Voice).

Ugly code

March 30th, 2009

Was writing some code today and ended up with “Dictionary<string, List<Dictionary<string, string>>> resultDictionary”

Does anyone else think that this is hideous? It’s a dictionary keyed by strings and holding lists of dictionaries keyed by strings and holding strings. And it is what you get when you have a statically typed language(C#) and no native dictionaries.

The code is trying to build a tree to encode as JSON to pass to javascript to represent as a tree widget…try saying that ten times.

I know what you’re thinking…and no, the code is no longer there, it only survived for a few mins before another iteration replaced it with something less icky..I tend to use evolutionary steps and refactor as i go.