So I love Iron Man and people who blog perl. But I've got some complaints.
1.) No Language Specific Feeds. I'm not discriminating against people of foreign languages I want a Russian only feed as much as an English only. I just can't read it, and I'd rather not have it in my feed. So I'm using Dagolden's English only Feed. This feed doesn't work 100% right however, see next
2.) Dagolden's feed apparently hate's blogger. I always see posts that come from blogger's atom feed full of html tags instead of formatting so I have to view the original source instead of just reading in my feed reader. This doesn't happen with my refeeded feedburner source that I've given to ironman.
3.) I can't always Comment on good Blogger's stuff. I'm gonna pic on 2 that I like: Modern Perl by chromatic, and Matt S Trout's Blog. The former is run on Movable Type and I can't comment because it's OpenID implementation won't accept google or blogger's OpenID, it causes an error for both (yes I can auth with blogger and google in other places such as StackOverflow), it also doesn't accept anonymous comments. In MST's case, he's just never gotten around to implementing comments.
4.) Spam, about 1 in every 20 posts (numbers pooma) is nothing but spam. It contains nothing but a list of ... tags or something... Clearly contains no actual content.
This is just a rant... feel free to ignore. But maybe someone will look at it and say... oh I didn't know that was happening... I can fix that.
Mar 25, 2010
Bad Customer Service from T-Mobile
So about 2 months ago I got fed up with Sprint (they suck for different reasons) and I already knew that they had better service coverage than Verizon in my area. My friend suggested T-Mobile, so I went and got setup with them for a 14 day trial period. I took the phone made some calls tried the web browser, I didn't like the blackberry itself, but that's besides the point. When I got the phone home, no service, not even outside the house, making T-Mobile worse than Verizon. I didn't want to run 10 miles into town that day, the next day we had a blizzard, so wednesday, two days later I took it back. They charged back everything and everything seemed good. Until a few weeks later when I got a $10 bill for usage. I just finally got around to dealing with customer service today. They say it's accurate, and no they can't do anything. So basically as an FYI to anyone else, don't try T-Mobile unless you already know that their service will work for you because they are going to charge you anyways. This shouldn't be, your service doesn't work for me, you shouldn't charge me to tell you that. Now if I move I probably won't look at them for a service change, had they handled this in an amicable manner I probably would have as soon as there network wasn't an issue. I'm also going to tell anyone who asks about cell provider's about it. Yes $10 isn't much, but it's the principle of me having to pay them anything after I had made it clear I wasn't sure it would work and I just wanted to see if it was an option.
Labels:
cell provider,
hall of shame,
rant,
t-mobile
Mar 24, 2010
my git remote
So occasionally I like to fork a project on GitHub well the proper way to do it is to use GitHub's fork button which then clone's the repo into your account. this is great! I can than clone that locally develop it an push to it. Usually I do this push with
git push origin. I can then ask the owner of the original repo that I forked from to 'pull' my changes in. Wait did I just say original? why am I calling my repo on github origin? it's probably not the origin repo... it's not the primary project repo... so I decided I needed a new convention. I now do git remote add my uri://... for my repo's on github and git remote add origin uri:// for the projects authoritative repo. This also helps when I need to update my repo from the origin and then push them to my public forks.
Mar 14, 2010
Managing CPAN on Arch Linux
So if you're running Arch Linux and want to install a bunch of packages from CPAN the best way is NOT to use the official cpan client, or even the new cpanminus. No your best bet is to use AUR or lacking AUR packages, create your own, and I'm gonna walk you through how I do it. The really nice thing about installing packages with Pacman is that unlike cpan there is a utility to uninstall them.
The first thing you'll want is a utility that allows you to easily manage aur. Right now the Recommended tool appears to be a CLI utility called packer you'll want to download the PKGBUILD, on the packer page, to a directory of it's own and run
So now you'll want to install CPANPLUS with packer. This is easy just run
with
Now you have your entire installer stack but you still need to configure C::D::A. Run
So now you know the basics of Installing packages, but I'm guessing you still want to know, how I'm managing over 200 perl packages. C::D::A is actually making this easier all the time (esp since I talk to the author). first you'll want to create a directory to store all your AUR packages, the name isn't important. So you'll want to create your first package like
Unfortunately cpan2aur cannnot generate an entire dep tree worth of directories. It's worth saying that you don't really have to run cpan2aur -d at all, you could just go right to cpan2aur -u, but then you'd miss out on the wonder that is cpan2aur --check. You can run
Unfortunately C::D::A has some limitations. The first is that it really Doesn't use Template Toolkit or even Template::Tiny (which I suggested). This doesn't seem to matter to much... but I wonder if it could help me with the other problem. C::D::A can't correctly determine optdepends because it gets the deps from the generated Makefiles. I'm not sure if this could be fixed or not, I don't yet understand this part of making CPAN packages enough.
Happy packaging.
UPDATE:
you don't need
The first thing you'll want is a utility that allows you to easily manage aur. Right now the Recommended tool appears to be a CLI utility called packer you'll want to download the PKGBUILD, on the packer page, to a directory of it's own and run
makepkg -s in that directory and then (as root) pacman -U pkgname-pkgver.pkg.tar.gz. You've now installed Packer, which means you'll never have to install an AUR package like that again (barring a new install of arch). If you really want you can stop now and just use the packages provided by arch, myself, and other aur contributors. The general conversion in name is is the CPAN module DBIx::Class becomes perl-dbix-class. However running packer dbix-class will find it. packer is capable of searching all of aur and the official repositories and giving you options if more than one is available. If you want to learn how to make your own packages, or just plain ignore aur and use cpanp to install read on.So now you'll want to install CPANPLUS with packer. This is easy just run
packer perl-cpanplus. This should install CPANPLUS and any of its deps. Now install CPANPLUS::Dist::Archwith
packer perl-cpanplus-dist-arch. There are other 'cpan' options but this is the only one that's on both CPAN and AUR, and it has some really nice functionality.Now you have your entire installer stack but you still need to configure C::D::A. Run
setupdistarch. This will configure cpanplus to automatically create any package it creates as an Arch pkg, it can even install them. For example packer perl-moose and cpanp -i Moose will both install Moose with Pacman. The first will use the package I've uploaded to AUR and the second will use C::D::A to create one (which is exactly what I did).So now you know the basics of Installing packages, but I'm guessing you still want to know, how I'm managing over 200 perl packages. C::D::A is actually making this easier all the time (esp since I talk to the author). first you'll want to create a directory to store all your AUR packages, the name isn't important. So you'll want to create your first package like
cpan2aur -d Catalyst::Runtime you'll note that this creates the directory perl-catalyst-runtime in that directory there is a PKGBUILD.tt it contains syntax similar to Template::Toolkit, it is however home grown by the author of C::D::A. you can use it to add stuff the the resulting PKGBUILD. To create the PKGBUILD you'll run cpan2aur perl-catalyst-runtime it will create the PKGBUILD and the tarball for AUR. However, if you're really planning on making this for AUR and no package is on AUR or you own the one on AUR you can just run cpan2aur -u perl-catalyst-runtime and it will create all the aforementioned things plus upload them with your AUR account. It's worth noting that if you attempt to run cpan2aur and a PKGBUILD already exists it will ask you if you wish to overwrite, unless you've made changes to it say yes, if you aren't updating to a new version on cpan it will ask if you want to update the pkgrel. I specifically requested that because it was annoying to increment by hand and I needed to update the PKGBUILD because of things like dep or provides changes.Unfortunately cpan2aur cannnot generate an entire dep tree worth of directories. It's worth saying that you don't really have to run cpan2aur -d at all, you could just go right to cpan2aur -u, but then you'd miss out on the wonder that is cpan2aur --check. You can run
cpan2aur --check perl-* and it will automagically check for updates of any directory that starts with perl- and upload the updates to AUR.Unfortunately C::D::A has some limitations. The first is that it really Doesn't use Template Toolkit or even Template::Tiny (which I suggested). This doesn't seem to matter to much... but I wonder if it could help me with the other problem. C::D::A can't correctly determine optdepends because it gets the deps from the generated Makefiles. I'm not sure if this could be fixed or not, I don't yet understand this part of making CPAN packages enough.
Happy packaging.
UPDATE:
you don't need
cpan2aur -u --check, cpan2aur --check implies -u
Mar 13, 2010
Iron Man and introductions
So I've decided to "compete" in the Iron Man competition.
My name is Caleb Cushing, I'm a 25 year old, unemployed, student, living in the Greater Lansing, MI, USA, area. I've been programming perl for approximately 6 months. This includes a lot of off time, time to relearn the language from the class I took a couple years ago (and learn modern perl), learning Catalyst and DBIC, all of which is an ongoing process. I would guess I've been writing useful code for about 4 months and even that is a slow going process as I've still got a lot to learn.
Previously, I was the tree maintainer for Funtoo, and tried spinning my own fork of Funtoo/Gentoo, it needed more devs than me to survive though. I now use Arch Linux. After an arch/perl user who went by aCiD2 moved to OS X I adopted most of his perl AUR (arch user repository) packages in addition to ones I had created myself. I now have over 200 CPAN packages on AUR in Arch's PKGBUILD format.
I'm a contributer to Catalyst::Manual and I created Template::ShowStartStop by forking Template::Timer.
I'm sure I'll become more active as time goes on, and have more interesting posts than this one.
My name is Caleb Cushing, I'm a 25 year old, unemployed, student, living in the Greater Lansing, MI, USA, area. I've been programming perl for approximately 6 months. This includes a lot of off time, time to relearn the language from the class I took a couple years ago (and learn modern perl), learning Catalyst and DBIC, all of which is an ongoing process. I would guess I've been writing useful code for about 4 months and even that is a slow going process as I've still got a lot to learn.
Previously, I was the tree maintainer for Funtoo, and tried spinning my own fork of Funtoo/Gentoo, it needed more devs than me to survive though. I now use Arch Linux. After an arch/perl user who went by aCiD2 moved to OS X I adopted most of his perl AUR (arch user repository) packages in addition to ones I had created myself. I now have over 200 CPAN packages on AUR in Arch's PKGBUILD format.
I'm a contributer to Catalyst::Manual and I created Template::ShowStartStop by forking Template::Timer.
I'm sure I'll become more active as time goes on, and have more interesting posts than this one.
Labels:
arch linux,
aur,
cpan,
Funtoo,
ironman,
perl,
Regen2,
Template::ShowStartStop,
who am I
Mar 11, 2010
How not to ask for help
This is the story of my friends problem today.
so of course I'm like:
So I explained that % is a wildcard. He still hadn't explained what his problem is or what he was trying to do.
So here I am trying to guess at what his problem is. I've never used sql server but a quick glance at postgres docs suggested the syntax was wrong. I know don't query other docs than the software being used... but I wanted to run a test locally to see if I could figure out what he was doing.
Oh! that's very helpful... way to give more information. I think I now know why he never asks questions in IRC or forums. He never learned how to ask a question and they won't put up with him.
So finally I'm able to determine... his problem is he's got a
Now anyone who's familiar with sets will probably realize the notation here is bad and so you can't tell if these are sample columns or records. a more proper way to write this would have been
It took me 20 minutes of getting that data to realize they were reversed, which is shameful for me... but I was trying to figure out things like VARCHAR or INTEGER... he of course said it's not an array, and I suppose it's not an ARRAY type in sql.. but I guarantee that's why it looks like that... it's really a foreign key stored as an array in a varchar. After I told him he lied and said it didn't work only to come back 10 minutes later and say... you were right.
so the final should have been
I got one for ya.
Field like field --friend
so of course I'm like:
? is that a question?he had given me no prelude, no premise. response
I tried field like '%' + field2 + '%'
No good though
--friend
So I explained that % is a wildcard. He still hadn't explained what his problem is or what he was trying to do.
it giving you a syntax error? --me
So here I am trying to guess at what his problem is. I've never used sql server but a quick glance at postgres docs suggested the syntax was wrong. I know don't query other docs than the software being used... but I wanted to run a test locally to see if I could figure out what he was doing.
Doesn't work --friend
Oh! that's very helpful... way to give more information. I think I now know why he never asks questions in IRC or forums. He never learned how to ask a question and they won't put up with him.
so it's not a syntax error it just doesn't do what you want? --me
Right. The like command isn't finding it --friend
So finally I'm able to determine... his problem is he's got a
... WHERE ... LIKE ... that isn't returning what he expects. This is still completely worthless because I still haven't been able to figure out what he's trying to do... or more correctly I have but not why it isn't working because his code is right. which means he's fallen prey to the assumption that he knows what I need to know to solve his problem. He hadn't given me enough info. After I tried to explain to him how to do what I thought he was trying to do and giving him a sample query and some data... he gives me thisField1 = "4369" field2 = "4311", "4369" --friend
Now anyone who's familiar with sets will probably realize the notation here is bad and so you can't tell if these are sample columns or records. a more proper way to write this would have been
field1 = { '"4369"'} field2 = {'"4311", "4369"'} I probably still would have been a little confused just because I wouldn't have been sure he was writing it right. See the problem here is that field 2 is an array and therefore not stored properly in a relational manner, it's why he has to do a much slower LIKE in the first place. After bantering to figure out that this was in fact text data these were single records I eventually figured out that what he was trying to do was find field2 if it contaned field1. However, his code was asking for field1 if it contained field2. basically he had his parameters reversed.It took me 20 minutes of getting that data to realize they were reversed, which is shameful for me... but I was trying to figure out things like VARCHAR or INTEGER... he of course said it's not an array, and I suppose it's not an ARRAY type in sql.. but I guarantee that's why it looks like that... it's really a foreign key stored as an array in a varchar. After I told him he lied and said it didn't work only to come back 10 minutes later and say... you were right.
so the final should have been
WHERE field2 LIKE '%' + field1 + '%' or in postgres WHERE field2 LIKE '%' || field1 || '%' because we use the standard || for string concatenation instead of the +
Mar 10, 2010
You should have hired me! ( just a vent )
So this is about the 10th time my friend has asked me for help on a SQL (w/ SQL Server) problem. I Actually interviewed with his company at one point and they elected NOT to hire me. Why? because I have never found windows errors useful, have therefore never used its logging facility, and was unable to answer questions about it. I'm was a UNIX guy then and am now. But I'm still better at figuring out problems on software I've never even used, with only about 1/10th of the information that I need. I'm so tired of fixing other people's problems and not getting paid for it, especially when somehow they profit from it.
So why don't companies seem to hire me? Because I suck at interviews. Because I don't have that 4 year degree and someone else does. Because I don't have 2 years of experience with Technology X. Because I've not got the greatest work history.
Why don't I have the greatest work history? Well I've been fired twice. Once the official reason was I fell asleep at work, I don't think I did. Even if I did I had, had insomnia for 3 days, I even told them that. I'm pretty sure I could have sued for wrongful termination, but I didn't. The other time I was hired into a position that I really just wasn't a good match for, but I didn't realize it until later. That position also didn't have enough work for me, and the work that it did have wasn't well enough explained for me to do.
Wait so I have to explain to you how to do something? no... but when you tell me to make a form with this list, and copy this pre-existng product with new tech. Then those 2 definitions conflict. So I try to do work to make what you want and then you say but I don't want those fields... I say but this can't be made to work like that without them... I never really got answers... Can't do work that I'm not given enough info to do properly, and I wasn't privy to the meetings with the clients.
I'd also like to note that I almost quit the second job as I had been given less than 5 hours a week for 3 months, and my boss, although a good hacker, wasn't a very good boss. But I'm not completely absent of blame... maybe I misrepresented my knowledge of the product, or maybe I should have done more to get the information I needed to do the work.
Well maybe my luck will change and this company I've been interviewing with recently will hire me so the next time my friend asks me for help to do his job I can say. You know your company could hire mine and the work would get done faster (better too probably).
So why don't companies seem to hire me? Because I suck at interviews. Because I don't have that 4 year degree and someone else does. Because I don't have 2 years of experience with Technology X. Because I've not got the greatest work history.
Why don't I have the greatest work history? Well I've been fired twice. Once the official reason was I fell asleep at work, I don't think I did. Even if I did I had, had insomnia for 3 days, I even told them that. I'm pretty sure I could have sued for wrongful termination, but I didn't. The other time I was hired into a position that I really just wasn't a good match for, but I didn't realize it until later. That position also didn't have enough work for me, and the work that it did have wasn't well enough explained for me to do.
Wait so I have to explain to you how to do something? no... but when you tell me to make a form with this list, and copy this pre-existng product with new tech. Then those 2 definitions conflict. So I try to do work to make what you want and then you say but I don't want those fields... I say but this can't be made to work like that without them... I never really got answers... Can't do work that I'm not given enough info to do properly, and I wasn't privy to the meetings with the clients.
I'd also like to note that I almost quit the second job as I had been given less than 5 hours a week for 3 months, and my boss, although a good hacker, wasn't a very good boss. But I'm not completely absent of blame... maybe I misrepresented my knowledge of the product, or maybe I should have done more to get the information I needed to do the work.
Well maybe my luck will change and this company I've been interviewing with recently will hire me so the next time my friend asks me for help to do his job I can say. You know your company could hire mine and the work would get done faster (better too probably).
Feb 16, 2010
bash and konsole
So I've had lots of problems using a multi-tab xterminal, for the casual user I'm sure they'd not even notice them, or think I'm silly, but when you spend all day in a shell they become less so.
one of the big problems I've had is with history. see when you close a shell then it writes the history. well if you have 5 tabs open each with with a super long history they'll write those histories out in the order they close in. basically what happens is all the history saves at once so one of your open shells histories will be before another's and if each has like 50 entries it can be quite a way back. In fact I'm sure I've had it happen where parts of my history was lost. So what do you do? you have to separate them per tab. One way to do this is with gnu screen. I don't like screen's history because it records the output of the terminal as well as the command, so this wasn't a good solution for me. The solution is that each tab must have its own history file. Well how do we do that? before I get to it I have another problem.
History
one of the big problems I've had is with history. see when you close a shell then it writes the history. well if you have 5 tabs open each with with a super long history they'll write those histories out in the order they close in. basically what happens is all the history saves at once so one of your open shells histories will be before another's and if each has like 50 entries it can be quite a way back. In fact I'm sure I've had it happen where parts of my history was lost. So what do you do? you have to separate them per tab. One way to do this is with gnu screen. I don't like screen's history because it records the output of the terminal as well as the command, so this wasn't a good solution for me. The solution is that each tab must have its own history file. Well how do we do that? before I get to it I have another problem.
PS1, umask, and default group
I also have a need to have different settings depending on what I'm working on. If I'm working on files that need to be read and written to by my web server they need to have a different group and umask. first I solved this by su - to a different user, then I solved it by having different bashrc's but neither fully solved the history problem.howto do it
first you have to have one konsole profile for each of the different settings you need. so I have one for web development called webdev. Then you have to add an environment variable to it I'm going to call it KONSOLE_PROFILE and set that to whatever your profile is called. Neither name really matters so long as they don't conflict with others. Then you need to code your bashrc (or other shell to work with it). I have a shortened sample bashrc that you can use in a gistFeb 14, 2010
Can't Find Google's OpenID
I think that Google's (not Blogger's) OpenID is a failure. It's not memorable and you can't find it. I've been trying to figure out where google has my OpenID listed for 30 minutes now. This is not the first time I've had to do this. I usually use Blogger's because it uses my blog's url, but it's currently error-ing with a typepad blog. Why can't google use something like google.com/username ? something we could remember. Why isn't it listed in an obvious place in my account details? Why is it when I search "google openid" it talks about the announcements all over the place, but never how to find out what your url is.
UPDATE:
Found it on lenni.info
UPDATE:
it's this
UPDATE:
Found it on lenni.info
UPDATE:
it's this
https://www.google.com/accounts/o8/id
Labels:
google,
hall of shame,
openid,
typepad,
web services
Feb 11, 2010
KDE 4 is finally ready for users
I just installed KDE SC 4.4 last night and I can say that I feel that it's finally general user ready. The last bug that I felt would prevent average use is now gone. What was that bug? when you pressed print screen nothing would happen. There was a workaround to make print screen work but it didn't work out of the box. I feel that there are some things that should just work and that's one of them.
I'm not sure I'm yet happy with the state of the device notifier, and automounting as the UI doesn't seem perfect yet, but it can now do all the things that are necessary.
There will always be improvements to be made, but I think that if you've been not sure about using KDE 4 go give it a try now. (I'm about to find out if I can replace vim with kate's vi bindings).
I'm not sure I'm yet happy with the state of the device notifier, and automounting as the UI doesn't seem perfect yet, but it can now do all the things that are necessary.
There will always be improvements to be made, but I think that if you've been not sure about using KDE 4 go give it a try now. (I'm about to find out if I can replace vim with kate's vi bindings).
Subscribe to:
Posts (Atom)