Rice University logo
Top blue bar image
Boanerges Aleman-Meza, Computer Scientist

Undergraduate email did not appear to be affected by the hardware failure (they use Google)

November 5th, 2013 by Boanerges Aleman-Meza

Summary:  Email in the organization goes down, but students not affected because they use google-email. We should also have google email, oh wait, nevermind.

“Undergraduate email did not appear to be affected by the hardware failure” was the message in IT describing the email issues in campus yesterday.

The organization I work for uses one of those Webmail services installed by IT to provide email to staff. Students, on the other hand, are given email services through Google. I’m not aware of how much Google gets paid for this but that does not matter.

When email goes down, people are not happy. Even if it went down for only a few hours. So, what are the options?

  • We all should be moved to email service by Google. This option has the drawback that if the service fails, absolutely no one in the organization would have email.
  • We should use some other email service but I am not fully satisfied with Yahoo’s web client, neither Outlook’s design.
  • Strengthen IT’s capacity to deal with hardware failures. I like this option because as much as I like google-email, I like it more that my organization is independent on something so important as email.

Somehow this issue brought up another topic, online storage. It turns out that some people in the organization prefer to use Dropbox instead of the in-house solution because it costs less and it is easier to use (I don’t have data to back this up myself, no pun intended).

How could this be possible? I’m no IT system support guy (thanks God) but I know that 2TB disks are below $100USD and a server with space for 8 disks costs less than $1,000 for sure.

Is it necessary for an IT department (or Cloud department, whatever) to actually make money out of their in-house options? (that’s how it looks like). I know they have running costs, but I thought such departments are a service for the organization. It is not like the Parking folks, who can only build a parking deck with millions of dollars investment up front.

On a final note, some one told me that the off-campus data center is in a reconditioned “house” that used to be thought to be full of spirits and ghosts. Such ghosts now guard our data off campus. Happy late Halloween then!

Installing and setting up KINSOLVER in a Linux 2.6.32-358.6.2.el6.x86_64

September 29th, 2013 by Boanerges Aleman-Meza

Steps that I followed to install KINSOLVER in a linux-box 2.6.32-358.6.2.el6.x86_64

  1. Get the KINSOLVER C++ source code
    1. Created folder ~/kin_c_source
    2. Downloaded Makefile, kin.cpp, kin.h
    3. Compiled executable via command-line: make
    4. Make folder ~/kin
    5. Copy executable kin_c to ~/kin/
    6. The backend simulator (executable) is then located at ~/kin/kin_c
  2. Get the Java KINSOLVER source code
    1. Created folder kin_java_source
    2. Downloaded Java files (Dataset.java, KinFile.java, …, and )
    3. Update PlotServlet.java to make sure that the URL is updated accordingly (e.g., change from genetics.uga.edu to your own server)
    4. Update the script to compile (compile.sh)
      1. The jar file for servlets may need to be specifies, such as using the one in apache tomcat. Example: /opt/apache-tomcat-7.0.40/lib/servlet-api.jar
  3. Make sure Gnuplot works
    1. For example, admin had it installed at: /usr/bin/gnuplot
  4. Setup java-servlets
    1. Inside folder ‘jsdk2.1’, update variables inside of file: kin_environment.properties
    2. Start the servlet-server by running ./startserver
      1. Verify that the servlets are running by going to http://odyssey.bioinformatics.uga.edu:8090/kin/servlet/Setup , which is a servlet that keeps track of the options needed to  run KINSOLVER
      2. In the case that the browser takes a while to show anything and times out, then likely the port (i.e., 8090) is not accessible either in the network (such as inside campus computers) or the linux-box has the port closed (system-administrator needs to open the port)
    3. Go to servlet with configuration options, save changes, and click on “create web page”
  5. Test via uploading an input file
  6. Troubleshoot until it works
    1. For example, I changed ‘kinnew’ to ‘kin’ in order to have simpler URLs
    2. Reminder: changes on java-servlets code requires stopping the server and starting it up again to be visible
      1. Inside folder ~/jsdk2.1
      2. Start server: ./startserver &
      3. Stop server: ./stopserver
        1. In case of error messages when stopping it, just ignore them.

The genius in All of Us

September 7th, 2013 by Boanerges Aleman-Meza

Excerpt of Moira Gunn’s interviewing David Shank on his book The Genius in All of Us:

DAVID: This is all about how to fail. Growing up is all about failing and learning from the failure and developing a good attitude about that. If we tell kids that they are just really good at stuff because they’re born that way, that is a disaster emotionally because they are like “oh. I’m good. I don’t don’t wanna try stuff that feels bad or difficult because I’m just good this stuff and I just stick in that, you know, I’ll just stick in that area”.

MOIRA: You were talking about parenting earlier. One thing that you talk about that I think is really important is, don’t attach love or affection to achievement. [emphasis added]

DAVID: Yeah, this is a, uh, it actually turns out to be a quite a good recipe for creating prodigies, if that’s what you want. You know, if you want someone, what you do is, you get the short term pay off of kids earning that love and affection through this incredible hard work of becoming good at something. And  then they turn into adults, and they don’t know what love is, and they don’t know what human relationships are, because they’ve been taught about this transaction, which is very, it is very harmful.

Link to MP3 file of the interview.

Recipe for charro-beans (blend americanized version)

September 5th, 2013 by Boanerges Aleman-Meza

Recipe for cooking charro beans, aka, frijoles charros or frijoles rancheros, somewhat blend (americanized), adapted from existing recipe for frijoles charros.


  • 2 lb. beans (normally I use pinto beans)
  • 1/2 lb. bacon
  • 1/2 lb. ham
  • 4 tomatoes + 4 green tomatoes (or their equivalent to the 4 red tomatoes)
  • 3 garlic cloves
  • 1 tbsp salt
  • 2 onions
  • 1 chicken boullion (sounds like a bully but it is not)
  • cilantro (normally I use 1/3 of the chunk, or about 20 stems)
  • Pork skins (one bag of normal size of snack would do)


  1. Clean the beans to avoid stones (you’ll hate a stone, your dentist may like it)
  2. Clean all the veggies
  3. Add lots of water into a pressure pot, add the beans, 1 tbsp salt, 1 garlic clove, 1 onion, then when boiling, adjust flame to avoid exploding the pressure pot, and cook for 35 minutes
  4. Fry the tomatoes and green tomatoes, and the remaining garlic cloves (cut them along the long side in 2 or 3 parts), then use a blender to blend them together with the cilantro and the chicken bouillon
  5. Chop the onion in small parts (approximately the size of squares of 4 millimeters by 4 millimeters)
  6. Fry the bacon until it starts to get golden color, add the onion and fry until the onion is transparent, add the ham and cook for 5 minutes at medium flame or so
    • The original recipe would include chorizo here but some people think it is too strong flavor
  7. When the pressure pot is done with the beans, trash the onion and the garlic clove
  8. Add the stuff you blended into the pressure pot
  9. Add the stuff you fried (bacon, onion, ham) into the pressure pot
  10. Add the pork skins into the pressure pot
  11. Wait until it starts boiling (with no lid) and then cook it for 5 minutes

Mexican beef caldo recipe (soup of beef and veggies)

September 4th, 2013 by Boanerges Aleman-Meza

Recipe to make beef caldo (caldo de res), adapted from an existing caldo de res recipe.


  • 1 tbsp salt
  • 1 clove of garlic
  • 1 onion
  • 3 lbs. beef shanks center cut bone-in
    • I never find it in Kroger, always found it at HEB
    • Alternative: Short Loin with bone
  • 1 lb. butter gold potatoes (or is it honey gold?)
    • I normally use 3 lb. bag because it is a better deal buying the bag
    • I cook them as indicated in the procedure, but when done, I separate them in a different container to avoid having a plate that has too many potatoes in it
  • 1 lb. carrots
    • If you’re rich or want to save time, buy the baby-size carrots
  • 3 corn in the cob
  • cilantro (normally I use 1/3 of the cilantro, or about 20 stems)
  • 5 squash (a.k.a., calabacitas)


  1. Clean all vegies
  2. Use a pressure pot to cook the beef, together with lots of water, the onion, one clove of garlic, and 1 tbsp salt.
    • When boiling, change the flame accordingly so that the pressure pot does not explode and cook for 30 minutes
  3. Depending on the size of the pressure pot, remove (or not) the beef
  4. Trash the onion and the garlic
  5. Peal the potatoes and cut them in half, cut each squash in four parts, cut the carrots in spoon-size chunks
  6. Add everything else into the pressure pot
  7. When boiling, adjust the flame and cook for 1 minute
  8. All done!

Genetics – the basics just before the advanced stuff

August 28th, 2013 by Boanerges Aleman-Meza

Here are a few of my notes about genetics.

Mendelism: Mendel is second on my list of top scientists, just right after Darwin.


  • Gametes: they usually have only one copy of each chromosome (such as sex cells)
  • Zygote: single cell from female gametes and male gametes. “I’ve been using internet before you were a zygote” said Dave Winer, I think.
  • Monohybrid cross: a single trait is studied
  • Dihybrid cross: two traits are studied.
  • Haploid eukaryotic cells have one copy of each chromosome.
  • Diploid eukaryotic cells have two copies of each chromosome.

Worth remembering:

  • In substrate pathways, double mutant shows the upstream gene
  • In signaling pathways, double mutant shows the downstream gene
    • if A suppresses B and A is loss-of-function, then there will be too much B
  • mitosis: duplication into sister chromatids, everything is lined-up in the middle.
  • meiosis I: we have 2 cells, separate homologs, homologs are lined up
  • meiosis II sister chromatids separate
  • recombination: if 100% of tetrads have a crossover, the % of number of progeny showing recombinant types is 50

Where to eat when visiting Houston?

August 21st, 2013 by Boanerges Aleman-Meza

These are (some of) my favorite places to eat in Houston Texas. (In no particular order)

  • Blue Nile Ethiopian Restaurant, 9400 Richmond Ave
    • Skip this when having people that only like americanized food
  • Hibachi Grill and Buffet, 12183 Katy Freeway
    • Toddler friendly menu (which buffet is not toddler friendly?)
    • It has changing station only on women’s restroom
  • Nam Noodles and More, 2512 Rice Blvd
    • Toddler should be able to eat noodles or tofu, and the chocolate cake for sure
    • Some tables have a long sofa-like on one side, which is good for toddler to jump around
    • It has changing station in both men’s and women’s restroom
  • Torchy’s Tacos, 2400 Times Blvd
    • Toddler friendly menu, we like the dirty-chavez because of the egg although the carrots need to be eaten by adult (they are spicy)
    • It has changing station in both men’s and women’s restroom
  • Tofu Village, 9889 Bellaire Blvd #303
    • Toddler can eat rice, tofu (choose either not spicy or mild), pancake
    • It does not changing station in any restroom

Recipe for Mexican green salsa

July 10th, 2013 by Boanerges Aleman-Meza

Adapted from an existing recipe for Mexican green salsa


  • 1 onion
  • 1 clove of garlic
  • 4 tomatoes
  • 2 serrano pepers
  • 20 sticks of cilantro
  • salt


  1. Wash everything
  2. Put a small chunk of onion (approx. 1/8th of the onion), the tomatoes, serrano pepers and the garlic on a frying pan on high flame until they burn a little. For example, the tomato should be cooked enough so that its skin could be easily removed by hand
  3. Blend everything (except the tomatoes), adding 1/4 cup of water and 1/2 tsp of salt
  4. Add the tomatoes to the blender and blend again but only enough so that the tomatoes are sort of chopped instead of fully blended.

Singing to newborn baby (Canciones de cuna)

June 20th, 2013 by Boanerges Aleman-Meza

When my daughter was a baby, my wife and I would sing to her to help her in falling sleep.

These are the spanish songs that I liked to sing to my daughter.

  • Amor eterno – Rocio Durcal
  • Siempre en mi mente – Juan Gabriel
  • Duérmete mi niña duérmeteme ya porque viene el coco y te cantará
  • 100 años – Pedro Infante
  • Destino – Ana Gabriel
  • A la camita – Topo Gigio

HTML5 Responsive Table Design (Book Review)

June 5th, 2013 by Boanerges Aleman-Meza

Summary: Instant HTML5 Responsive Table Design How-to. The book focuses on making better tables by using responsive design and HTML5 features. Responsive design methods include view/hide columns by means of a button or automatically when a smaller screen is detected (i.e., mobile device), converting tables to graphs (i.e., pie chart), converting tables from matrix form to a paragraph form (easier to read in a tiny screen), loading the table dynamically via JSON and make the table grow upon user request via buttons such as “load more data”.

Tables in HTML should no longer be done the old-way. HTML5 offers features for header, footer, and headings that combined with CSS can make tables look much better as well as having cleaner code (both in HTML and CSS). The books shows how this can be done but also illustrates what can be done with CSS3 in tables, such as formatting odd and even rows differently.

Nowadays it is easy to find JavaScript codes that so something ‘responsive’ on tables. The book walks you through a few such codes, carefully selected, that for example, give the user the option to show/hide columns. From the web-designer point of view, only a few lines get added into a CSS, and by including a JavaScript then magic happens on your tables. The examples worked on my tables just as described in the book. In addition, you can mark which columns are essential and which ones are optional, so that a mobile device having a smaller screen could only show the essential ones automatically. The book is well-versed in “mobile first” development.

As you go deep into the book, you’ll learn how to convert a table dynamically into paragraphs in order to benefit the mobile user having a small screen. I really did enjoy the codes that convert a table to a pie-chart. In one website I maintain, such graphs are not needed but I which they were because they add so much color and liveliness to otherwise plain tables.

One feature explained in the book that my web-designer would love, is that of automatically populating a table from a JSON file, so that the HMTL code is smaller. Even more, the table can grow upon user request by means of a “load more data” button that would facilitate reading a larger table in a mobile device.

Instead of just giving you various recipes, the book also includes a all-at-once example, where various of the responsive-design scenarios already mentioned, are then integrated into one working example.

On the not-so-great side, the book is about tables and only tables. This would not be a book to learn to use JSON file with JavaScript because its audience is the person that wants to ‘update’ the way tables are displayed online, in particular, with the mobile user always being considered. It is also a book that assumes you are familiar with basic HTML, and I’d say that even with no hands-on knowledge of JavaScript, the examples in the book can be implemented in a live-website without problems.

Disclaimer: I was provided with a electronic copy of the book for review. It is a concise book, consisting of approx. 50 with code samples and screenshots. The source codes are available at the publisher’s website.  This review was first posted in Boanerges Aleman-Meza’s blog