Bacon Flowchart

So one of my friends posted this bacon flowchart on my Facebook wall:

Another friend apparently doesn’t have enough to do at work and made an Allison version:

I have no words for how awesome that is.

The book that started it all: How I taught myself HTML in 4th grade

I got my new book HTML&CSS in the mail yesterday.  It’s a very basic introduction to HTML and CSS, but I got it even though I know both because it is absolutely gorgeous.  I wish more books taught like this – I’ve actually been searching for more books on web design like this.

Anyway, as I started reading through it, I realized that a lot of HTML I thought I knew is obsolete.  For instance, apparently using <a name=”blah” /> is now obsolete in HTML5, and you should instead specify anchors for links with id attributes.  I didn’t even know you could specify anchors with id!  At that point I realized that my HTML is way outdated.

Why?  Because the HTML I know is what I taught myself from a book in 4th grade.  After this one semi-structured introduction to HTML, everything else I picked up as I needed it, and I definitely haven’t been keeping up with new specifications.  I have a very haphazard knowledge of HTML, with a lot of gaps.  Same with CSS – I don’t think I even bothered with CSS for years because that intro book never mentioned it.  I’ve definitely been able to get by with what I know, but I think it’s time for a more structured refresher – and to get myself updated to 2012!

I was surprised to find that I actually had that book from 1998 (14 years ago!) in my bookshelf.  I must have missed it when I was unpacking – otherwise I would have reminisced over it for hours.  Take a look at how awful it looks:

I got it from a book order in 4th grade.  Remember those?  I was always so excited to pick out new books to get.  I have no idea what possessed me to get this book, but I’m glad I did, because I’m pretty sure this book is the reason I’m a software engineer today.

Here’s the back cover.  I cringe just looking at that example site.

I’ve already checked, that website doesn’t exist any more.

I’ve been on a book-buying kick lately, mostly about web design.  I figure the money will be worth it in the long run since I’ll be learning something I have a lot of interest in, and I haven’t sat down and read for a long time.  I still have five or so fiction books in my bookshelf that I haven’t gotten to, but at this point in time I’m more interested in learning.  And reading is dying out!  Why don’t people relax and just read any more?  That used to be all I did when I was little.  Now instead of staying up really late reading I stay up really late browsing the Internet.

The HTML&CSS book is so pretty.

Even when they show the example pages that correspond with each code snippet, they don’t just show the page – they display them on different monitors in beautifully decorated rooms.  I’ve even been getting some book suggestions from the books they show in the background.

I also got Above The Fold a few days ago.  It’s also really pretty, and there’s a lot of fascinating background in it.  I never thought about the fact that tabbed browsing was based on file folders, although it seems obvious now that I know.  It talks about the structure of web pages, but it shows a lot of them full-length.  Web pages look so different when you look at them full-length versus the height of your browser.  They feel so much more cluttered to me when I see them full-screen – but then I guess that’s the whole reason the “fold” is important!

I’d also been reading The Design of Everyday Things before I got into this big book kick, because my user experience friend recommended it.  Before I started work on my current team I never thought about user experience at all – but now it seems so important.  I guess if I don’t have to think about the experience of doing something while I’m doing it, it was probably designed well enough that it was natural and made sense.  On the other hand, the book says that when something goes wrong, people tend to blame themselves rather than bad design.  I don’t think I believe that 100%, because some people are just retarded, but if the majority of people have difficulties, something is probably wrong.

Another book I recently bought but haven’t started is a little different… I got I Am Jackie Chan, for no reason other than that Jackie Chan is awesome.  Sadly, I had to get a used book because they apparently don’t print it any more.

I’ve decided to set aside a specific amount of money each month for my “splurgy” purchases, and these books fall into them.  I’ve already ordered Responsive Web Design – now that people browse from phones so much a responsive site is pretty much expected.  Here are some other books I’ve decided to buy so far, in the order I want to get them:

After I read more I’m going to stop being lazy and actually design BaconFriedRice instead of using pre-made templates.  Yes, I’ve been saying that for a long time, but now that I’m reading all these I want to do it right.  I’m excited to get to that point!  Now off to read some more!

Life update – auto-immune disease, resolutions, video games, projects, and kitties

I’ve been meaning to write this since Christmas, but I kept putting it off, so it’s a little late.  Haven’t posted in a long time, so it’s going to be long! Here’s a table of contents, just in case… Topics aren’t in any special order.  Also I was writing the end in a rush so it’s not as comprehensive as I’d like…

Auto-immune disease
Resolutions
Video games
Projects
Kitties

Auto-immune disease – pemphigus foliaceus

After many, many doctor visits, I’ve learned that I have this random auto-immune disease called pemphigus foliaceus.  My immune system basically attacks my skin, so if I don’t take medicine, I get blisters all over.  It’s not curable, but it’s controllable.

In September, I noticed that I randomly started getting open wounds on my stomach.  At first I thought it was the kitties accidentally clawing me when they slept on me at night, but as I paid more attention I discovered that I actually had blisters for a short amount of time, before my clothes rubbing against them would pop them.  At the beginning they only appeared under my t-shirt line, so I thought I might be sensitive to our detergent or something, so we changed it and waited a few weeks but I still got the blisters.  Around Thanksgiving I started getting a rash on my face too, so I finally went to the doctor.

Multiple visits, blood tests, and biopsies later, the dermatologist told me I had pemphigus foliaceus.  Here’s a site with a pretty good description of it (it’s about the more severe version pemphigus vulgaris, but everything is basically the same except I don’t get sores in my mouth – yay, I guess): Pemphigus Vulgaris Network.

Basically right now I am taking a steroid medicine that has been toning down the blisters and rashes a lot.  When I went down to the lowest dose I still got some new blisters, so I’m on a medium dose right now.  I’ve been feeling some of the side effects, so it’s kind of messing me up a bit.  I haven’t been able to sleep a lot lately as it gives me a bit of insomnia.  The doctor said it may make me anxious – so far the only thing I’ve noticed is that on my regular drives to and from work, I sometimes start to feel like all the cars around me are narrowing in and boxing me in, and it freaks me out as I’m driving.  Every once in a while the lanes just feel really really narrow and I feel like every car is inches from me.  Also the medicine makes me gain weight :(  I have to watch what I eat as it makes me really hungry, and even though I’ve been watching what I’m eating I’ve gained 10 pounds in the month since I’ve started the medicine.

However the steroid medicine is bad for you long-term, so I’ve also started a new medicine that takes 6-8 weeks to take effect.  Hopefully this one is better – in essence it is turning down my immune system so that it doesn’t attack my body.  I’ve always had a weak immune system so now I have to be really careful to eat healthier.  I’ve been taking iron, calcium, and vitamin D supplements – I take 7 different pills in one day :(  It’s interesting though, because apparently I had slight anemia due to low iron, so I was always tired and feeling faint.  Lately, though, I’ve been feeling so much more awake and energetic – I never realized that how I usually felt wasn’t normal!  I get up easier, have a lot more motivation to get things done, and feel so productive every day now.  The only thing I’m not sure about is if it’s a result of my iron level being normal, or the steroid medicine – hopefully I am still as energetic (but with no insomnia!) after I get off the steroid medicine!

My dermatologist referred me to a dermatology auto-immune specialist at Stanford, so I will be seeing him soon just to confirm my normal dermatologist’s diagnosis and treatment.  I have never appreciated health insurance before this.  My dermatologist told me that before he referred me he had already pre-authorized the visit with my insurance, so I already know that it will mostly be covered.  All the doctors I’ve seen so far (urgent care, normal family doctor, dermatologist, hematologist) have been in the Palo Alto Medical Foundation‘s network, and I am really impressed by how high-tech and efficient everything is.  I gave my information once at the Sunnyvale center, and since then every time I go I just tell them my name and show my ID.  The Mountain View center has just about every type of doctor in one building, and even the labs are there, so after my doctor visits if I need to get blood tests I just walk down to the lab.  The doctors immediately send prescriptions to your pharmacy during your appointment, so as soon as I get home I can pick them up.  They’ve also got this awesome online system where I can see all my upcoming appointments, send messages to doctors, see the results of all my blood tests, see all my prescriptions… Everything is so high-tech in Silicon Valley!

Resolutions

These resolutions are late, and I haven’t really started, but putting them here will push me to follow them:

  1. Health
    1. Eat healthier – more vegetables and fruits
    2. Exercise three times a week – Tuesdays and Thursdays at work, Sundays at the apartment complex gym
    3. Get back down to my normal weight (110 pounds)
  2. Money
    1. Eat out less – try to bring lunch to work more often
    2. Control my random bursts of spending sprees
    3. Be more aware of how much of my money goes to what
  3. Work
    1. Learn more – delve deeper into the new things I’m using rather than only dealing with the minimum
    2. Be more aware of user experience – it’s fascinating!
    3. Collaborate more with other people – talk in person rather than IM if possible
    4. Speak up more with my thoughts and ideas
    5. Take useful classes that become available
  4. Projects
    1. Work on projects more consistently! Don’t just start them and forget about them for a few years
    2. Keep up with crafts projects
    3. Start more technical projects, especially related to web development
    4. Keep track of project progress, optimally here on Bacon Fried Rice
  5. Miscellaneous
    1. Be more productive, do chores more willingly, resist the urge to just lay on the couch and read articles on my phone
    2. Follow a weekday schedule so I don’t get lazy and do nothing when I can’t decide what to do. Tentatively:
      1. Monday: Video games! EDIT: and reading
      2. Tuesday: Crafts project (probably finishing my cross-stitch projects)
      3. Wednesday: Technical project (discussed later)
      4. Thursday: Do something with Jack (play games or do a project or something)
      5. Friday: Free choice

Video games

I’m still playing Arkham City right now.  I like it, and it’s usually the type of game I really like to play, but for some reason I just can’t really get myself to finish it.  I think it’s because it disturbs me.  The villains are terrible.  I want to just get it over with so I can finally play Assassin’s Creed Revelations.

Uncharted 3 was awesome, but kind of short.  Also the ending was very anti-climactic.

I got a DOTA2 key, so I started learning it and playing with Jack.  I suck though.  Also Jack apparently logged into my Steam account and gave away my two extra keys without telling me -__-

I need to find other games to play with Jack too, I can’t see myself being able to play multiple DOTA2 games in a row without getting bored… We played the Uncharted 3 local multiplayer but now that we finished it it doesn’t have much re-playability.

Projects

I’ve been neglecting my projects a lot.  I have two categories: crafts and technical.

In terms of crafts, I usually do them with a purpose (cards for people’s birthdays, holidays, etc.) so I guess it makes sense that I haven’t been keeping up with them.  However when I was going through my boxes of junk I discovered more than five very large cross-stitch projects that I’ve either started very little of or haven’t started at all.  I’ve decided I’m going to focus on those, so my Tuesdays are going to just be cross-stitching.  Right now I’m working on one of kitties in a window that I started for Jack two years ago – I wonder how long it will take me to finally finish it!

For technical projects, I’ve decided to pick up web development again.  I’ve always been interested – taught myself HTML from a book in fourth grade – but it kind of died off once I got into high school, and all of the programming I did in college wasn’t related at all.  However due to some of the stuff I’ve been doing at work my interest has been rekindled – I’m going to write about this in a separate post later so I won’t go into detail here.

Kitties

I’m in a rush and have to leave so I will just leave with a short note about the kitties.  They are still awesome, Jokulhaups is big and heavy and too smart.  He figured out how to open all the cabinets so now we have to Velcro them shut.  Dragon is so much tinier than Jokulhaups!  She loves to snuggle now, every morning she comes up to Jack and asks to be let under the covers.  She used to sleep on my pillow every night but I guess snuggling with Jack in the morning was warmer :(  She loves sitting with me when I’m at the computer though, so I guess that makes up for it.  Here are two kitty photos before I go:

Jokulhaups would like a belly rub please

Dragon says Mini Panda is snuggly and warm

Life update

Jack was complaining about how I haven’t updated in a long time, so here I am.

I haven’t written in a long time because I don’t really have much to say.  Life is good, we still have the kitties and I started work.  I still haven’t made a new layout.  It’s getting rainy in Silicon Valley.

I want to start some new personal projects, but there are too many to choose from!  For instance, making the layout for this site that I said I’d do a year ago.  Oops.  I also signed up for the Stanford online AI, databases, and machine learning classes, but I also recently decided I want to play around more with Arduinos and Processing, so those may take priority – if I ever start them!

I’ll write more once I have something interesting… but for now here are the kitties.  They got so big!

Zzzzz

Playing Portal 2

Teddy bear!

Kitty hot tub

Snuggles

Awww

Healthy kitties

Jokulhaups and Dragon just came back from the vet and they are very healthy! I have to get some of Dragon’s poop for a fecal test though, not looking forward to that.

The humane society suggested a vet that covers $200 of initial exam + shots within the first two weeks per kitty. So today I have like a -$260 balance after the two exams and pre-paying the fecal test. They both have one more vaccine to get that the humane society doesn’t cover and Jokulhaups’ is on Tuesday so we get it for free but Dragon needs hers the day after the two weeks… Nooooo

They need rabies shots from the humane society in a few months then they are set! They are both asleep right now, guess the car ride was exhausting. Dragon is stretched out in my lap and I snuck a round toy onto her leg, wonder if she’ll notice when she wakes up!

More pictures to come later, my netbook power cord broke so I’m on my phone.

Cats

Mine is the black one and is named Jokulhaups.
Brownish tabby one is Allison’s and is named Dragon.


I’m pretty sure I win the name competition.

[insert witty Combo Breaker title]

I’m back from Beijing, and more bored than before, despite having some projects to work on. At the moment I’m trying to figure out what Jack’s done on Renoki so I can add a menu, but I still don’t really know Android programming…

Not much other than staying at home and playing games, reading, working on my ONiB doc, and now trying to figure out Renoki.  Just looking forward to moving at the end of June!

Making My Own Android Clock AppWidget

So I am super OCD about the clock on my home screen. The Android lock screen is basically unchangeable outside of modifying your system files. Sure you can buy Widgetlocker or Lockbot off the market but I dislike the fact that all they really do is cover up your actual lock screen with another activity. I couldn’t say the actual battery drain this puts on my phone, but regardless I dislike it.

I actually like the default clock widget that appears on the lock screen. I think the font is good and the information it shows terse and clean. What I don’t like is how seemingly nobody on the android market has created a replica of this clock. I found one with the right font but no date. I found one with the same style but the size wasn’t right. I want a clock app widget that is identical, down to the pixel, to the lock screen default clock. The ideal behavior is for me to slide and unlock the phone, and for me to see no change other than the slider disappearing, the bottom icons to appear, and the screen brightens.

Android programming is annoying because so much stuff is confusing. Every thing has it’s own name (contexts, activites, intents, widgets, etc) and all the documentation is heavily saturated with this terminology. The problem is that reading the documentation is difficult, when you aren’t totally familiar with what each thing is. I honestly still don’t fully know what a context is. I also don’t understand why their memory management/garbage collection is so confusing. Apparently it is super easy to leak a context if you accidentally leave a reference to it somewhere in your background services. Every time you open and close applications and such, it destroys the old one and creates a new one from scratch. Thus, contrary to what I’ve learned the past 5 years of programming, it’s almost better to declare things temporarily and allow them to be destroyed. You want to avoid long running things because sooner or later, you will lose track and it will lead to a memory leak. This just boggles my mind, because I’ve always learned to try and reuse things in order to reduce the overhead of creation. I guess this is the pain of switching from C to Java.

I spent maybe 3 nights trying to get my clock widget set up. The thing that boggles my mind about app widgets (the things you drag onto your homescreen in android) is the onUpdate() method. Apparently onUpdate() can be called periodically, but it is also where they tell you to initialize everything about your app widget. This means that if you initialize a new variable, and then the update happens again, you’ll have to instances of that variable running. What’s worse is if you place multiple instances of your app widget on the home screen and then delete one, the variables you created don’t also get deleted. They seem to persist until you completely restart the phone or force kill it.

Anyway, here is my final clock. It’s about as lightweight as you can get. It updates whenever there is a time change signal, which occurs every minute. Unlocking the phone is practically seamless. The problem is that because they dim the lock screen, whenever you unlock the screen gets super bright and it makes it seem like everything changed. Nothing I can really do about that. Secondly, I’m about 99% sure that the wallpaper on the lock screen is 1 or 2 pixels shifted right. Maybe I’m just going insane.

Now I need to let it run for a while to make sure it doesn’t crash.