DELL XPS M1330 not charging battery

Thank you DELL for this little troublemaker. After I had to fix my harddisk driver problems finally by replacing it with a new one (the original one runs in external case just fine), I am now having trouble with the charger. One morning I plugged it in coz the battery was running low but nothing happened. Well, it did not die on me, but battery did not charge anymore. At the next start of the computer I got the message that the power adapter is not recognized and will not charge the battery. Awesome. Reading some different posts I get the options of a dieing motherboard or a broken poweradapter. Mh. No warranty. Easy choice would it be mine.

So, ran into one of these small DELL stands in Sydney and asked them if I could quickly plug my laptop into one of their demo laptops adapter. Started. Battery charges. Happy to not to have to replace the MB. But than you don’t find the suitable adapters on ebay (the connector is not round but a bloody hexagon). At the end ordered with DELL for AU$110.

I like this little machine, but now understand why DELL refuses to give them proper warranties and support. That puts a slight dent into my trust to them as I actually bought it to have something rock solid. Maybe I do buy a MacBook next time…

sfPropelActAsTaggableBehavior user_id enhancement

I love symfony (aka the PHP Symfony Framework) for the structure it brings to application development. Finally all the patterns known from e.g. the JAVA world are accessible (and required) in a PHP environment. I presume, this will make future web applications based on it a lot more stable, error prone and enhanceable.

Another aspect is the speed of the development once you got used to it and know the basics. But then there is always the point you stumble with your knowledge and can’t really proceed. This happened to me while implementing the faboulous sfPropelActAsTaggableBehavior plugin. It adds with a bit of configuration the ability to have tags for all your propel based objects. The documentation provided is great and functionality out of the box close to complete. Close only though.

The Requirement

I have an application I use since symfony 1.0 to get to know the latest framework updates. I gonna get it out for production use soon and wanted to add some last gimmicks. The application allows you to get nutrient informations for food and to track it in a personal diary. I thought adding tags would be very beneficial as it allows users to easily group it as required. And this could be done for foods as well as receipes (though not yet implemented), I checked out the sfPropelActAsTaggableBehaviour plugin. And it is all I needed, but the fact that I don’t want any user to remove tags that are not his own.

The Solution

I figured the best way to accomplish what I needed is to enhance the sf_tagging table in the schema with a reference to my sf_guard_user as follows:

sf_tagging:
_attributes:      { phpName: Tagging, package: plugins.sfPropelActAsTaggableBehaviorPlugin.lib.model }
id:               { phpName: ID, type: integer, required: true, primaryKey: true, autoincrement: true }
tag_id:           { type: integer, required: true, foreignTable: sf_tag, foreignReference: id, onDelete: CASCADE }
taggable_model:   varchar(30)
taggable_id:      integer
user_id:          { type: integer, default: null, required: false, foreignTable: sf_guard_user, foreignReference: id, onDelete: SETNULL }
_indexes:
tag:            [tag_id]
taggable:       [taggable_model, taggable_id]

So far so good. But than I stumbled implementing it into the plugin code. I also checked the forums and couldn’t find any help there. Sending an email to the developer was not of success either, which I can understand as answering every bloody request from noobs and intermediates would get quite time consuming. What’s left? Bloody learn the trick. So read the chapter about mixins in the symfony book (Chapter 17: Extending Symfony) and an a tutorial that explains the development of the the Paranoid Behavior.

That helped me to understand I was looking in the wrong places as the configured model classes (for Food and Receipe) were enhanced with hooks that execute the code in the sfPropelActAsTaggableBehavior.class.php.  In here it is the method public function postSave(BaseObject $object) I need to enhance. In the first foreach loop I added the following code:

// save new tags
foreach ($tags as $tagname)
{
$tag = TagPeer::retrieveOrCreateByTagName($tagname);
$tag->save();
$tagging = new Tagging();
$tagging->setTagId($tag->getId());
$tagging->setTaggableId($object->getPrimaryKey());
$tagging->setTaggableModel(get_class($object));
if(sfContext::getInstance()->getUser()->isAuthenticated())
$tagging->setUserId(sfContext::getInstance()->getUser()->getGuardUser()->getId());
else
$tagging->setUserId(null);
$tagging->save();

}

And yeah, it works flawlessly. :)

What’s left

Working on the behavior class directly is not a good idea, so I will create an inherited class that enhances the postSave method rather than changing it directly. And than there is the logic to be added for removing the tag. It will simply check whether the saved user_id is the same as the id of the current user. That’s it.

I’m quite happy with my little learning experience as the whole concept of mixins and behaviors did not cross my road before. But it is so useful, that I probably enhance some of my plugins (e.g. for images) into behaviors. Nice exercise that will be. And I can only encourage anyone to stick his nose into those slightly more advanced topics as they will benefit you in many ways.

And for the nutrition site, the next problem to be solved will be finding the best way to implement a Contend Delivery Network for better response times of the Frontend.

Unable to uninstall Norton Security Scan

Seriously, this is pretty annoying. All the sudden I found Norton Security Scan on my Notebook (Vista Business 32Bit) and am able to deinstall it. It does come back after each reboot. That is no Antivirus Software anymore and deletes Norton of my list of trusted Software vendors. This is truly annoying as well as concerning. I am afraid this could be some kind of virus hidden in these files.

But I won’t stand that and therefore hope to find a way to get rid of it. And I gonna record the steps here that lead to success. Let’s get started with looking at Nortons Homepage. Nothing on the homepage about this misterious behaviour. Support? Nope. Search? Nope. Ok, so they are doing this on purpose? Seems so. Well, let’s google for a solution. First post search for “norton security scan vista can’t deinstall” looks promising: Unable to Uninstall Norton Security Scan – Something’s Broken.

Well, that’s exactly my problem. And some links to solutions. Let’s start with getting rid of the job that does reinstall at each boot. Go to C:\Windows\Tasks. I found a file “Norton Security Scan for daniel.job”. Delete it. And then deinstall Norton again. And restart to see if we were successful.

Not too shabby for just a quick guess it might only be this bloody job. Restarted an no Norton Security Scan on the Desktop. Well, let’s hope that really was it. But seems so. Still, where did it come from and was it supposed to work that way? Don’t like it…

Update: Bugger that. It’s back. So, gonna have to follow one of the other posts. Will get back with hopefully better news soon.

Update #2: Fixed it. Following the instructions in the above linked Google Groups discussion I was able to get rid of it without touching the registry by deleting the Norton files and folder in USERNAME/AppData/Local/Temp.  Additionally disable the Task “Norton Security Scan for daniel” via “Control Panel – Administrative Tools – Task Scheduler”. I did set it to disabled. Voila!

Transcript of Symfony Plugin Developers Day IRC log

I am currently looking into putting some of functionality from various symfony (you probably heard about the really good and already famous symfony-project PHP Framework) projects into plugins for easier reuse. I stumbled upon a recent blog entry about the Plugin Developers Day held in IRC Chat. There is a link to the IRC log file. I was going to have a read, but do not use IRC. I therefore wrote a quick and dirty PHP script to parse it into very basic html, as it might be interesting for others as well to read about the plugin development for symfony.

Continue reading

DELL XPS M1330 upgrade to dual boot Ubuntu 8.10

Ok, we’ve done it before with a Thinkpad and it worked out pretty well. So, why not do it again, especially on this really neat little laptop with plenty of disk space and the previous issues with Vista booting up into a loop of blue screens due to driver issues for the hard disk.

Installation of Ubuntu

And the process itself is really easy as Ubuntu 8.10 does it all by itself.

  1. Insert disk and boot up into Live distribution
  2. Doubleclick the INSTALL shortcut  and follow the instructions.

In that process Ubuntu even asks you to import your Vista settings (documents and some applicable settings), reorganizes your partitions to free space for its own required partitions (though I did not like that a hundred percent). After the first start you follow some of the guides and install restricted hardware drivers, codecs and of course the software you need. And that was it. It did works just fine. MediaDirect works fine and under Ubuntu the Media direct button starts my Music program (Rythmbox by default).

Share Thunderbird Mail and Profile between Ubuntu and Vista

And to save some space I of course did not import all my files, but link to them from the regarding folders. To make it even more efficent I share my Thunderbird profile between these two OS. I love Evolution, but Thunderbird caught up a lot especially with improved Lightning (the calendar plugin).

All you really need is the Mozilla wiki page on Thunderbird profiles. Here are the steps to execute to share the profiles:

  1. Locate the position of your profile in Vista:
    %AppData%
    \Thunderbird\Profiles\xxxxxxxx.default\
    resolves for me to

    C:\Users\dell\AppData\Roaming\Thunderbird\Profiles\cyprt14e.default
  2. The profile in Ubuntu is located in ~/.thunderbird/xxxxxxxx.default/
  3. Go to the folder ~/.thunderbird and edit the profile.ini
  4. Replace the path to the local Thunderbird profile with the Vista one located on the mounted C-Drive
    Path=/media/disk/Users/dell/AppData/Roaming/Thunderbird/Profiles/cyprt14e.default
  5. Last but not least, set the isRelative to false by placing a 0 instead of the 1

My profile.ini does now look like that:

[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=0
Path=/media/disk/Users/dell/AppData/Roaming/Thunderbird/Profiles/cyprt14e.default

And that is it. Start Thunderbird and all your account and plugin settings should work just fine and out of the box.

CERN’s “Doomsday Machine” goes live – is this the end?

I truely believe this current hysterie about the LHC and the experiments it will allow to undertake is a typical phenomena of media. It is simply the story with the most scare factor right now, therefore it is likely to be the most successful story. But how does it come it ends up in nearly riots with emails and phone calls to the LHC team threatening them for their lives? Come on people, stop over-exaggerating and start thinking for yourself.

No, there are far more realistic threats to my live than this physical experiment.  I wish people would calm down again. Irrational panic never leads to something good. In a post month ago I found it rather funny that this guy sitting in Hawaii collected money to sue CERN. Hobby Scientist jerking around, but getting publicity for his bull shit. In a couple of weeks again, when nothing bad happened, it all the sudden will be forgotten again and the world concentrates on the next big thing. Maybe another nuclear threat or a new disease or [you name it]

Apparently the media interest is that big, that LHC scientists from CERN did another safety study, published in a Press Release on 5th September.

“The LHC will enable us to study in detail what nature is doing all around us,” said CERN Director General Robert Aymar. “The LHC is safe, and any suggestion that it might present a risk is pure fiction.”

Rules, Rankings, Meanings

Oh my god, four topics covered in one post. Questions coming up: Is the just a funny way to not have to many posts? Will they relate to each other?

Unspoken Rules

You have surely have heard about unspoken rules, even though this is kind of impossible. But I am not going to discuss that today. Have a look onto some examples for unspoken rules in this post. You surely know a lot of them already. But there are not only these fun ones, but also some rather serious ones, that allow to work and live in a professional manner. Some examples:

  • Don’t hook up with colleagues.
  • Don’t speak badly about former employers.
  • Think before speaking out (rather generic though).

Rankings

WordPress provides nice statistics for you. How many visits to your page, the post read the mosts and how people got here. There you find links from the outside and from WordPress as well, for example using the tags you used for a post. There are for example tags like health, big brother, ubuntu, eclipse or Miles33. And guess what, nobody else than me ever wrote something about Miles33, my former employer.

And there are rankings at Google, funnily enough, that site at WordPress with the Miles33 tag is one page one amongst the pages about our office in Balmain, the partnership announcement between iQ4bis and Miles33 about a reporting and analytics suite for the Publishing market.

Meanings

As mentioned before, the unspoken rules are there to make a social living possible, by creating a common set of standards. Rankings such as page ranks at Google reflect the importance of sites for a search term. Funny enough that my posts are the only ones tagged Miles33 in WordPress and therefore indirectly appear on Googles page one. And I don’t even work for them anymore. Not my choice, the high hopes were bitterly disappointed. But I am not going to blame them, times in publishing are hard and instead of investing in better products – which of course would need investement in first place – it is easier to try to leverage the additional customer base with either old or immature products. Well, wishing good luck would be to much, though it is only luck that brought the management in London thus far. The new strategy may work, but leaves a lot of opportunities unused by not leveraging net-linx products. But to get to know products, you would need to at least speak to product people (many years of industry experience and product knowledge have been laid off already). Never happened, therefore modern products won’t have a future and even some just recently announced may be struggling to get the necessary attention. Other companies actually invest and manage to grow with products they bought. Not everyone actually believes that anything than print is not worthy or won’t produce revenue. And some even see that publishing will have to go online to not become distinct. Well, good luck with some nice print centric products from Miles33. Good bye futuristic net-linx products. :D

So what does that mean? Not much more than disagreement with new directions after an acquisition. You will see things like that pretty often, when theoretical number games are becoming actual management decisions. Just happens with Dresdner Bank in Germany. Aquired by Commerzbank it has already been announced that 9000 employees will be laid off. It is not about the people or their knowledge, that is just how the theoretical calculations are put into practice.

It also means I could utilize the new media to publish about my thoughts. Won’t do. Would be unfair to use my knowledge in the online world against a very traditional print centric vendor.

I will not complain to much about what happened, partly understandable it is, though it is sad and could have worked out differently if handled with a bit more experience. The whole publishing industry needs a change in direction and finally invest instead of watching the shares plummit further and further.

Further meanings? To me at means to concentrate on new challenges and get over the past. I liked my job and the industry, as it was never easy, but hey, everyone could do the easy job. But now it is on me to work in a position that is easier but still will be rewarded and recognized.

Finally, don’t take this to serious, I did not specifically switch on the sarkasm or irony tags, but of course you are aware of them.

Follow

Get every new post delivered to your Inbox.