Older blog entries for mmangino (starting at number 9)

I saw a link to a website called FairTax on a slashdot post recently. I went to the site and looked, and what they are requesting is an abolishment of the US progressive income tax and a replacement 23% increase in sales tax. This sounds like a bad idea.

There are several interesting details, such as the fact the every person gets a rebate of the tax paid on spending up to the poverty level. The other interesting detail is that tax is only charged on new goods. There are claims that this proposal would be revenue neutral to the government, however I don't know whether or not I agree.

I see several major flaws with this proposal:

  1. A 23% tax on new goods that doesn't apply to used goods would likely significantly increase the desirability of used goods, leading to a decrease in the purchase of new goods. (This would also decrease revenues to the governemtnt)
  2. All of their analysis of the impacts are based upon the assumption that costs to consumers would be reduced on all goods and services by 23% which they claim is the cost of the corporate income tax which is being eliminated. My experience in these situations is that the corporation would be more likely to just increase their profit. They also include a reduction in interest rates of 23%. I find this absurd, as interest rates haven't changed in the past as corporate tax rates have changed.
  3. They claim that a smoother revenue stream would result, as when times are bad people are still spending which leads to level taxation. While this is true, I question the desirability of it. The federal government has very strong borrowing power and is in a much better position to winter a reduction in revenue that the average working person. The current tax on income has as a side effect that you pay more when times are good and you can afford it. When times are bad, you pay nothing. Losing this feature makes it more difficult for people when times are bad.
  4. Finally, for better or for worse, the US tax code serves as more then a revenue generator, it is also a method of social engineering. The government currently uses tax breaks as an incentive to induce desired behavior, such as home ownership and job creation. This ability is lost with the fair tax plan.

Another plan I have read calls for the replacement of our current income tax with a VAT similar to that of the EU. In many ways, our current tax system is similar to a VAT. In VAT (value added tax), you pay tax on all purchases. You also collect tax on all items you sell. For example, if I buy two parts for $0.50 and combine them into a product I sell for $2.00, I would pay a tax of $0.20 on my purchases (assuming a 20% tax rate) and collect a tax of $0.40 on the sale of goods which I would then remit to the government. This much is identical to a sales tax. The difference in VAT is that I can actually deduct the $0.20 I paid as tax on goods from the amount I pay the government. I only pay tax on the value I add to the good.

In the US, we have a corporate income tax. Corporate income tax is determined based upon an accounting of the company. The basics are that you take Revenue (the $2.00 in the example above) and subtract out expenses (the $1.00 above plus whatever overhead and personnel expenses I have) to come up with a number called earnings, or profit. You then pay a tax on this amount. It should be noted that if you discard the cost of labor, this amount would be identical to a VAT.

There is no question that the tax code is horribly complicated and poorly specified. While we could certainly deal with simplification to the code, I worry that the drastic measures suggested would lead to unintended consequences. I would rather streamline the tax code over time by removing the years and years of special allowances and benefits that have been added over time.

Nutella: I think we both missed an entire season. It is quite cold here. I don't know if this means we will have a mild winter (I hope so) or a cold winter. In any case, I need to buy a coat.

I have a love hate relationship with Oracle. Basically, I love to hate it. I think they make an incredible database, and I have no problems using it. Unfortunately, everything gets complicated when it comes to Oracle. For instance, I wanted to grab some data from another database to use on my local instance. I did an export over the network, which worked fine. Unfortunately, the data wouldn't all import. Apparently the data in the tables doesn't match the constraints, i.e. there are null values in not null columns! How could that possible happen? I have no idea. I decided to disable the constraints and try again. I now get messages saying that it can't modify a view. It turns out the tables were actually materialized view (aka snapshots). I had to turn them into tables and the re-import the data. Finally, after about 2 hours (the datafile is 1.6gb) I got the data imported. I should have just pulled it into MySQL.

I'll probably be spending the next few weeks wading through data hell trying to get two systems to match up. I've been doing a little work with our backup group on reporting and will probably take a more active role. We use a product called BackupReport from Bocada. It isn't a bad product per-se, but it does a lot of things wrong. The idea of the product is that it combines information from several different backup systems. In our case, netbackup and Tivoli Storage Manager. While it does pull data into one schema, the semantics of some of the fields are different based upon the product. This means I will probably treat it as a raw data source and have to extract a set of usable data. it also needs the ability to roll up data over time. There is no reason whatsoever to have 5gig of backup data.

On a more interesting note, I found a good searchable site for information on ANSI lisp. This lead me to the (read-line) function which reads a line into a string. The common extension which splits a string into a list of strings should make the rest of what I want to do relatively easy. Maybe this weekend I will work on HTTP and URL parsing code.

On a more physical projects note, I will probably work on the condo this weekend. I've painted everything but the bathrooms and may try to get one painted this weekend. I also want to build a frame for my TV. I recently got a plasma tv which is hanging over the fireplace. Our place was built in 1922 and rehabbed in 2002 keeping the vintage feel. I think a nice wood frame that matches the trim would really help to make the TV look better.

gilbou: Enjoy the cb500. My first bike was a 1982 CB750. It was a wonderful bike once I realized that the front brake fluid had never been changed. This was a problem since the bike was 20 years old when I bought it. I currently have a 1997 VFR. I'm not sure if I'm going to keep it in Chicago since the streets suck and the traffic is horrible. It is nice to have a way to get around while my wife is at work with the car.

nutella: No rush, whenever you have a lull at work.

I got the schemers guide and have been learning scheme. I used LISP a little bit a while ago. I think the treatment of generators is really cool. Unfortunately, it doesn't talk about IO at all. My typical toy project to learn a language is to write a simple webserver and template language in it. I think I would like to do this in LISP/SCHEME. Unfortunately, I still haven't found anything good on IO. I know how to use (read) and some of the (with-open-file) stuff, but unfortunately, HTTP requests typically aren't sent as lists making read useless, and character IO is a pain. I guess I will start writing a more usable IO toolkit. Does anyone have any other suggestions on resources for IO in lisp/scheme?

I went to my first mentor meeting for YCTP on Saturday. It was a really good experience. I enjoyed helping out. We worked on social networking. It amazed me how easy it was for everyone to talk when they were just relaxing. As soon as they started roleplaying with me in a position of authority, they stumbled and lost their words. I think more than anything else these kids need confidence in themselves and their abilities.

I also went to a resume writing session yesterday. It was very interesting to see the backgrounds and work experience. I always forget how difficult it is to write your first resume. I think most of them are off to a good start.

nutella: I just noticed you are also in Chicago and I read some of your back diary entries. I have one comment for you: Doesn't everyone hate the kidney? I took a physiology class in college that I almost failed because have of it was renal. My wife is an MD at childrens memorial and I hear her say that several times a year. In fact, I think I have heard every medical person I know say that at least once. Whoever designed the kidney didn't understand the beauty of simplicity. On an unrelated note, if you or anyone else in Chicago wants to grab lunch some day, email me at Michael_J_Mangino@bankone.com

Which brings me to my subject for today. I got a Blackberry last night. I carried one from 2000 to 2002 and didn't mind it. I finally got sick of carrying my palm pilot, pager and cell phone. I now have one device that does everything. I forgot why they call them crackberrys. In fact, with a color screen, a simple API and a builtin phone, this one is great! My number one feature is that it works with not only my corporate email, but my personal email as well. If only it did spam filtering. If you haven't tried one out, I highly recommend it. Be careful, however, since once you use one you will probably have a hard time giving it up.

I haven't done much with Python recently since I've gotten a little busy. I plan on taking a calculus class at DePaul, so I am re-reading an old calculus text. It is amazing how quickly it comes back to you. I've also spent some time getting ready for my first YCTP mentoring meeting. We are discussing networking and resumes. I like to interview, so this should be fun. I'm really excited for this.

I had a really good weekend! My parents came into town to see our new place. It is the first time they have visited us in Chicago. I think they really liked the house. We didn't do too much. We went on an architecture river tour which was excellent. We spent a few hours walking around the Lincoln Park Zoo and conservatory. For a free zoo, it was really nice. We also went to the dog park near Lawrence. My Mom is slowly moving towards getting a dog. It was good to see her get to meet many different types as well as to watch our dogs run. We also had to take them to Millennium Park which was just completed several weeks ago. It is a really cool park in the downtown area. I go there and eat lunch some days. Finally, we walked around Gethsemane Gardens for a little while. My parents are really into landscaping and liked that store. It's nice to be able to walk to a landscaping place.

On a personal note, I got my acceptance letter from DePaul University. I am in the process of getting registered for calculus. I've already taken quite a bit of math, but I didn't take it very seriously at the time. I'm hoping to go back and take calculus, multivariate calculus, diffeq and calculus based statistics. I figure if I enjoy that I may be cut out for a Ph.D. in Economics.

On the work front, it looks like I may have a couple of different opportunities inside the bank. I still have a few people to talk to and the org chart needs to be anounced, but I should end up with a resonably cool job. It won't be my dream job, but that's okay.

I had one of those mornings. I woke up, took the dogs to the bathroom and ate breakfast. Then I decided to trim my beard. I checked the little number on my beard trimmer and it was set to where I keep it. Unfortunately, the guard was not correctly installed and in one fell swoop I removed half of my goatee. I contemplated leaving it like that hoping nobody would notice, but that seemed unlikely. I alse considered having just a mustache, but that just made me look like a porno star. In the end, I decided to return to being clean shaven. I've had a goatee for all but 3 months of the last 8 years. We'll see how long this lasts.

I also stumbled on to a wiki at work that had a discussion of software for building Agent Based Computational Economics. I am really geeked by this because I have been interested in similar ideas for a while, but never had a name for them. Earlier this year, I implemented some of the models in Swarm Intelligence in python. I found that I was unable to replicate their results. (For more information on these concepts you can see this interview with the author of the aforementioned book as well as this website with more information and other links.) In doing some of this reading, I found the repast toolkit which takes care of some of the simulation details for me. I am going to try to re-implement some of these models with this toolkit and also play with some social interaction problems.

One final thing I did was to sign up to be a mentor for the youth computer training program. This will hopefully let me give something back to this community. Since at some point in the future I am interested in teaching, this will likely help me learn as well. I love win-win situations.

I have no desire to write anything even remotely technical since today has been spent reading about Oracle RMAN. What a complicated thing that is.

Since moving to Chicago, I haven't gotten to ride my motorcycle as much as I did in Columbus. I used to commute on it every day. Unfortunately, the drive to downtown here isn't a lot of fun and it costs at least $6 a day to park. I did get out for a little while at lunch today. I can't believe how bad the roads are. There are very few potholes, but there are some huge bumps in the road.

Jen (my wife) is home today but on call tomorrow. Thank goodness for netflix which keeps me occupied when she is on call. Being on call in medicine is very different than in IT. When she is on call, she gets in at 5:00am (her usual time) and works until noon or later the next day. I can't believe how many hours she works a week. I know that there is a theoretical 80 hour workweek limit, but there is no way she is following that. Hopefully it will get better in the next few months. I miss hanging out with her, but I do get to see her 3 out of every 4 days. She will be on call Q4 this year which means every fourth night. Basically, the schedule goes 32 hour shift, 16 hours off, 13 hour shift 11 hours off, 13 hour shift 11 hours off. That means out of every four days, she works 58 hours and has 38 hours off. She does get the occasional weekend day off, but it only averages out to one day off per week. I certainly couldn't do that.

I should start this by saying that I am not unhappy with my life. I have a lot of things going for me and I have been extraordinarily lucky. That said, I have felt unfulfilled for the past few years. My wife and I have talked about it quite a bit, and I think it comes from not having enough challenge.

During the boom, I worked for a startup company and wrote some really cool software with some great people. When that company went belly up, I took a consulting gig with a local electrical utility. I really liked a few of the people I worked with, but the software and management weren't a good fit for me. The environment was extremely conservative and mediocrity was encouraged. At the same time, I was going to school to get my MBA. I really enjoyed that and have learned quite a bit. Fast forward to last Christmas when I finished school and took a job working for Bank One. I had hoped I would be challenged there, but so far, I haven't really found my niche. I generally work as a generalist who can learn new things quickly. In a company as big as what is now JP Morgan, there isn't much need for generalists, since they have so many people they can specialize in everything. I haven't found out what my new position will be since the merger, but I hope it will fit me better. I don't want to sound like I'm knocking the company, since it is a great company with some brilliant people, it just isn't fitting me well right now.

Since I was relocated by the bank, I have to work for them for two years or pay back the compensation. Since I don't really want to pay back that money, I have decided to try to challenge myself outside of work. Several weeks ago, I submitted an application to DePaul to try to take a class a quarter. My goal is to re-take calculus. I took calc as an undergrad, but I didn't really learn it as well as I would like. I still don't know what I want to do long term, but I am considering trying to go back to school for either economics or computer vision. (I know, they aren't very similar, but they are both research oriented fields that involve math) In the mean time, I have also started volunteering on the Python project. I haven't done a lot yet, but I did research a bug report and get it closed. It was suggested that I look into reviewing some of the patches in the queue. I have started doing that as well and should have some comments on them by the beginning of next week. Since my wife spends the night at the hospital (She is a pediatric resident at Children's Memorial hospital), I have some time to hack on things like that.

I hope that working on python in this way will help me understand the language implementation. I have really enjoyed using python to perform Monte Carlo simulation and implement some ant based search algorithms. Once I understand it a little better, I may even try to write a book on python internals.

criswell: Send me and email at michael_j_mangino@bankone.com if you are interested in positions with bank one. My department will likely be hiring quite a few people, although from looking at your resume I don't know how good a fit it would be.

It only took me 3.5 years to post another one of these. I've been trying to find a spot that I feel like I identify with to start a journal. I recently posted a couple of entries at JRoller, but I realized that I don't really identify with the Java community. I may write code in Java from time to time, but I'm not particularly enamored with it from a language standpoint. I get really sick of the jar soup I get every time I try to write code.

I used to read the articles and journals on this site a while back and found that it is populated with really intelligent people. I like that. I would like to be intelligent. I just recently graduated (again) and miss the academic environment. I need to find a job where I can learn continuosly. I'm trying to learn some things about neural networks and machine vision. Hopefully I will have the time to write some sample code.

A lot has happened since my last journal entry here. The project I was working on at the time, an XML message bus and translation engine was completed. We came in on time and under budget. I was able to replace a $12million dollar system for $300,000. The new system was extremely stable, and about 1000 times faster. It's really nice what you can do with software when you keep things simple. Unfortunately, the company went out of business anyway. Since then, I bought a house, got two dogs, worked for a small consulting company at a large utility. I then left them to take a job working for a friend at Bank One, I mean JP Morgan Chase and moved to Chicago.

Living in Chicago is great. We are in the actual city of Chicago, although about 6 miles north of downtown. I take the train to work everyday and will likely be going back to school yet again. I have an application pending at DePaul. I hope to go back and retake calculus. I've taken it before, but I didn't pay nearly enough attention. Eventually, I hope to make it through calculus based statisitics and more advanced math. I've finally realized that I need to be continuosly learning to feel complete.

I will probably use this as a forum to talk about the state of IT and big companies. I am really interested in how IT interacts with the rest of the corporation. I someday hope to run an IT shop in a small company. I also enjoy business strategy and will post about that from time to time. I look forward to being more active than I have been in the last few years!

This is my first post, so we'll have to see how long this lasts. I got the approval to create design documentation for my employer on a rewrite of a rather large ( multi million dollar) system. It is not open source, however there may be the possibility of open sourcing some of the tools we use. I also do a fair bit of lurking on LKML and I may start getting involved in the Debian project, however right now I am speding most of my time working and enjoying married life.

I actually created this account to post on one of the forums (about the TCP IP thing, since I think the design is scary) Essentially, if you allow one end of the connection during setup to respond with a forwarding IP and port, than any person on your local net can redirect any session creation by spoofing a packet from the broker to itself. You have just allowed sessions to be easily hijacked.

By way of introduction, I am a 22 year old married programmer living in Columbus Ohio. I have been using Linux since 96 or so. I use UNIX in all facets of my life. I think I am pretty good at it. I work primarily as a programmer, although most of my work involves design and bootstrapping of large systems. Most of my experience is in C and java, however I feel comfortable in most languages. I have a pretty good understanding of networking and OS design, and I really like component based programming.

Maybe I'll write another one of these. We'll just have to see.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!