Happy
[Recent Entries][Archive][Friends][User Info]
Below are the 20 most recent journal entries recorded in the "Happy" journal:[<< Previous 20 entries]
08:48 pm
[Link] |
I'm so used to case sensitive systems I found out two things tonight.
First, the file system on a Mac is not case sensitive.
Second, I have two files in my feather project that differ in only case.
There is a problem here.
Tags: feather
|
08:44 pm
[Link] |
college I started heavy duty equipment / truck transport repair last month, and I am impressed with the pace of the course, there is 6 hours a week of theory, and 16 hours a week of shop time, the theory and shop exercises are following each other quite closely. There is also not very much homework.
The whole class goes to the same classes at the same times, kinda like junior high. It is nice to be going as a group because there is no way to get lost, or really be late unless most of the class is also late.
The size of the class is nice too, only 22 people.
I like this college thing. By the time I am done (after two years) I will be in a new career.
Current Mood: sick Tags: life, school
|
05:15 pm
[Link] |
Brownies Josie and I made brownies a while ago, and the recipe she had was very quick and easy, the next day the page of the book she wrote it on got soaked and she couldn't read it any more, so here is a copy transcribed from pictures.
Vegan Brownies
2 cups unbleached all purpose flour 2 cups white sugar (or other) 3/4 cup cocoa 1 teaspoon baking powder 1 teaspoon salt 1 cup water 1 cup vegetable oil 1 teaspoon vanilla extract
1. Preheat oven to 350 f 2. Stir together flour, sugar, cocoa powder, and salt. Pour in water, oil, and vanilla, blend well, spread evenly in a 9 x 13 inch baking pan. 3. Bake for 25 to 30 minutes in preheated oven, until top is no longer shiny, let cool about 10 minutes before cutting into squares.
YAY BROWNIES!
Current Mood: hungry Tags: food
|
04:14 pm
[Link] |
Reefer Madness I am watching the colorized version of the classic "Reefer Madness" movie, and caught two subliminal frames with "4" and "20" on them. The movie is kinda funny with how bad people treat each other. I haven't seen anyone react to taking the reefer like the people do in this movie.
In the driving scene I was thinking "who gave him speed". Is nobody in this movie smoking anything pure? What did they lace those drugs with?
The movie smells like propaganda, which of course it is.
|
02:20 am
[Link] | There may be a skunk in my neighbourhood, the air spells like the sweet aroma of scared skunk. I don't think it is the smokable variety because that smells better.
Current Mood: sleepy
|
06:27 pm
[Link] |
stranger test I just read some very good advice: http://lifehacker.com/5320196/use-the-stranger-test-to-reduce-impulse-purchases
The Stranger Test is an excellent way to frame the financial significance of the purchase. How does it work? A reader from Five Cent Nickel explains: When considering a purchase, picture a stranger offering you [the cash value of the purchase] or the item in question. Which is of greater value you? Which would you choose?
Current Mood: hungry
|
10:02 pm
[Link] |
I fix things I broke the band off of a pair of crocks on the weekend, so I re-attached it so that it would still move like it used to. When I got back home I fixed it even better so from the outside it looks like it was never broken.
One of my friends had a pair of sandals with a broken strap, which I also fixed on the way to the festival.
Over time my camping and travel pack has been loosing buckles, which I keep replacing with key rings or new buckles. It also had a big tear in it once, which I put back together. I also keep fixing my duffel bags when the seams break, the bags tear, or a strap rips off.
The skirt I wore this weekend had a rip which I fixed last week.
The case of my calculator was missing a corner, so I made a new one for it.
Sadly I can't fix everything, and don't have the patience to fix everything that I know how to fix. Sometimes I need to re-fix something when the first fix wasn't good enough.
Current Mood: nostalgic Tags: life
|
12:26 pm
[Link] |
evolve I went to the Evolve festival on the weekend, it was so good that I forgot about life outside of the moment, which hasn't happened for a long time.
I was so sad to see it end, which might just be me not liking good things coming to an end.
Two nights of camping, with the partying going from mid afternoon, to just after sunrise, sleep was in the mornings, for those that slept at all, I got a few hours a day. My drug of choice was ethanol and caffeine, which I consumed in pleasant amounts, by the second night I would just totally forget about the ethanol because of all the good energy in the air. It was like I got stoned off the surroundings.
I think I will try to do this again, like next year.
Current Mood: sad Tags: life
|
12:14 pm
[Link] |
amusing interest rates I am getting really amused with the interest rates on my savings accounts.
My cash pot in my investments are getting 1% annually, this is fairly steady over time and is supposed to be low.
My super high interest savings account is getting 0.75% annually, this is down from 3% when I opened it almost a year ago, because it is lower than a low interest rate is quite amusing.
My high interest savings account is getting 0.25% annually, but doesn't have a minimum balance requirement like the super high interest account, this is down from 3% when I opened it two years ago.
The interest rates on those accounts is related to the prime rate, they were (prime - 2%) and (prime - 3%), except that prime isn't high enough for that right now.
On the flip side borrowing money is really cheap right now too (prime + 2%), and it is probably a good time to get a fixed rate.
Current Mood: crushed Tags: life
|
12:41 am
[Link] |
feather not business viable I had thought that I could make the feather backup system into a viable online backup service, but I have found that I can't.
Amazon S3 provides very cheap backup storage for those that want to do online backups, and a hashing scheme will give them non-redundant storage as well. Encryption can easily be added to the mix for added security.
The cost of bandwidth to load and store data to offline media is too high to get any reasonable latency for restores, the cost of pipes in this country large enough for anyone to do a restore of any significant size is too high.
So I feel that my best option is to better define the problem to solve, and see about starting a project to build a backup appliance. I don't have the energy to work on this project alone, for my own use it works well enough.
In the mean time I will be finding something other than software to concentrate on.
Current Mood: tired Tags: feather
|
07:32 pm
[Link] |
reCAPTCHA email hiding I tried out email hiding using http://mailhide.recaptcha.net/, from the looks of it there is no server side state involved here, except for the private key that is on their server because I used their web form.
sara...@gmail.com
I like how they have simple apis and the solving of the CAPTCHAs help improve OCR for book scanning.
Current Mood: hungry
|
05:49 pm
[Link] |
GWT iPod Touch I was trying out GWT with my iPod Touch today, and noticed that the rich text editor component does not work at all in the web browser, and also does not degrade into a text area. I can not activate the keyboard on the widget to enter anything, or get a cursor in the box.
http://gwt.google.com/samples/Showcase/Showcase.html#CwRichText
I seem to be running iPod Touch OS 2.2.1.
Current Mood: bored
|
11:06 am
[Link] |
I got an iPod Touch After hearing about the Skype on iPhone/Touch release, and getting a set of iPod headphones with a mic in them, I decided to get an iPod Touch. Maybe I shouldn't have.
The first pain was that it didn't work right out of the box, it needed to be activated using iTunes on Windows or Mac. After searching for a Linux friendly solution for a few hours, including trying to install iTunes on Wine, I used my roommate's laptop. To finish the activation I needed to have an iTunes store account, with a payment channel. I was not impressed but proceeded forward, I assume that apple will not abuse the credit card.
After the iPod was activated and synchronized the first time it could now run without being attached to the windows computer.
At this point I tried out the built in applications, specifically maps and web. I found that typing on the on screen keyboard is slow and clumbsy, seeing as I am used to touch typing on a full keyboard it would be slow to look for the keys to hit.
I found a cute little free application in the apple store which is just a level. A very nice application to make if one has access to a gravity sensor.
The map application caches the map tiles it downloads, and the location bookmarks, so that they can be pulled up without a network connection, which is very nice.
Gmail uses the web browser data storage to enable offline access to email that you read while online as well, very nice.
After a bit I went to try and install Skype, but it wasn't in the app store, so I tried the link on the skype page from a windows computer and got told that it is not available in canada. It would have been nice if I found out that skype on the iPhone/Touch was not available in Canada before, if I had known I wouldn't have bought this device.
I also tried out the Nimbuzz application since it can connect to skype, but there was very high latency during calls, and low sound quality, which was dissapointing. Also during calls the dial pad was not available so navigating a touch tone IVR is not possible.
The next day I moved on to jailbreaking, which was another long hunt for information. I couldn't find a way to do it outside of windows, and the only software that i found that could do it would keep hanging while patching the firmware. After a few hours of that I found a pre-built image in a guide, and finished the directions with it. The firmware update also required iTunes.
After jailbreaking the thing I installed ssh, and logged into it, which was cute, the device is fairly slow, has 2 partitions 1G and 7G, and has 27M of ram.
I continued my search for voip on the iPod, and stumbled upon an application called Siphon which is availabe in the post-jailbreak installer, which connects to any sip provider, so I signed up for Gizmo5, and took a chance on $10 worth of credit. The first calls were very clear and very low latency. Also there was a keypad available during the call, which is good enough for a wifi phone.
In conclusion, I now have a jailbroken iPod Touch being used for VoIP phone calls, maps, email, and web browsing.
Current Mood: hungry Tags: life, tech
|
01:55 am
[Link] |
Guice and Servlet Mappings (I am drunken writing this, but since I got recognized for writing something else I feel modivated to write more) Guice now supports an easy servlet mapping syntax which looks like (thank you guice team, my life will be so much easier now):
return Guice.createInjector(new ServletModule() { @Override protected void configureServlets() { bind(PlayServlet.class).in(Scopes.SINGLETON); serve("/play/*", "/play").with(PlayServlet.class); } };
It turns out that the behaviour is slightly different than when using the tomcat web.xml:
<servlet> <servlet-name>org.yi.happy.feather.servlet.PlayServlet</servlet-name> <servlet-class>org.yi.happy.feather.servlet.PlayServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>org.yi.happy.feather.servlet.PlayServlet</servlet-name> <url-pattern>/play/*</url-pattern> </servlet-mapping>
Basically in guice you need to specify the base name as well as the wildcard, unlike in tomcat. Also in Guice the pathinfo still works which is good.
With the tomcat deployment block /play is a valid url with a null pathinfo, but with the guice mappings it needs to be explicitly specified.
I am seeing some other strange behaviour which I need to investigate, which I will write on later.
Current Mood: drunk Tags: programming
|
07:04 pm
[Link] |
The Myth of the Genius Programmer I am watching and enjoying Google I/O 2009 - The Myth of the Genius Programmer at the moment, it is cute and enlightening.
The bus factor is a good measure to pay attention to, feather has a very low bus factor (one) at the moment. I would like to have someone willing to review my code and ideas, maybe some day it will happen.
I am watching most of the Google I/O conference video, maybe some year I will end up at one of these conferences.
Current Mood: hungry Tags: life, programming
|
02:13 pm
[Link] |
Guice AOP Example I went looking for a complete example of using AOP with Google-Guice. I couldn't find such an example in the documentation, or in any quick search.
So here is the example...( Read more... )
Current Mood: hungry Tags: programming
|
02:35 pm
[Link] |
iso9660 size estimator In order to optimally fill backup disks I needed to be able to find how big the disk image so far is while data is being gathered for the disk.
In order to find how big the disk image so far is, I needed a formula to incrementally find the size of the disk.
After some experimentation, and use of the ISO9660 file system documentation, I have a reliable formula for the size of a backup disk image.
Assumptions: all the files are a full 8.3 characters. all the files are in the root directory.
The formula: 174 + floor(count / 42) + sum( ceil(file_size / 2048) ) count is the number of files file_size is each file's size in bytes the result is in 2048 byte blocks.
An example script: #!/usr/bin/perl -w use strict; use POSIX;
sub sum { my $out = 0; for(@_) { $out += $_; } return $out; }
my @sizes = ( 2048 ) x 1000; my $file_count = @sizes;
my $data_size = sum(map { ceil($_ / 2048) } @sizes); my $dir_size = floor( $file_count / 42 ) + 1; my $overhead = 173;
my $size = $overhead + $dir_size + $data_size;
$\ = "\n"; print $size;
Current Mood: thirsty Tags: development
|
01:55 pm
[Link] |
simple requirement specifications I read an interesting article called Pulling Power: A New Software Lifespan, it describes another variant of Lean Agile software development.
What I liked most was the form of specifying requirements at the high levels, which appeared quite clear to me.
In order to ... (achieve the vision) As a ... (stakeholder) I want ... (behaviour)
The point of the order of the statement parts is to maintain the focus on the goals, not necessarily the behaviour.
And for describing tests, there was another very simple triad as well.
Given ... (setup) When ... (exercise) Then ... (assert)
This follows how tests are set up and performed, both manually and when they are automated.
I should formulate some examples now...
In order to burn a backup disk As a command line user I want to issue a command to do the whole image burning process
Given enough outstanding data in the cache to burn a backup disk When I issue the burn backup disk command Then I can watch the whole processing be performed
Given enough outstanding data in the cache to burn a backup disk and the successful completion of a backup disk burn and index When I check the amount of outstanding data Then I see that the amount of outstanding data has been reduced
Given not enough outstanding data in the cache to burn a backup disk When I issue the burn backup disk command Then I see the command abort
Given not enough outstanding data in the cache to burn a backup disk When I issue the burn backup disk command with the force option Then I can watch the whole processing being performed, with a warning that the disk will not be full.
In order to archive a directory As a command line user I want to issue a command, specifying the directory to store, and be given enough information to restore the directory
In order to prevent public access to the disk resources As a system administrator I want the network interface to require authentication These actually feel too specific, but that is not really a problem because what I am working on is a re-implementation of the feather backup system.
Current Mood: hungry Tags: development
|
03:23 pm
[Link] |
m3u to mp3 directory I just hacked together a PERL script to turn a M3U play list into a directory of numbered files for making an mp3 cd. The files are numbered to preserve the order of the play list.
After running the script I just burn the disk with Joliet extensions. (mkisofs -J -o output.iso top-out/)
The only real reason I posted this script is that I know I will loose it and need to re-create it again next time, though it only took a few minutes this time anyways. Maybe someone else will find it useful.
If someone is interested in a polished and user friendly version, just ask and I will clean it up, if there is no interest I have no need to.
Current Mood: hungry Tags: life, programming
|
11:53 am
[Link] |
spam calls I just got an automated sales call to my cell phone, this is not the first time either. They keep telling me I am paying too much credit card interest.
Those calls cost me money too, because they insist on calling during the day, and sometimes they even wake me up. They cost even more when I am not in the local area because of long distance roaming charges.
Also if I hit the "remove me" option on the voice menu they continue to call, which makes it as bad as spam.
Current Mood: annoyed Tags: life
|
[<< Previous 20 entries] |