Jim's Depository

this code is not yet written
 

I installed SLOCCount today on my development machine. You can run it from one of your source directories like… sloccount *.[hc] … and it will tell you not only how many lines of code you have but what it may have cost to write them. So far I’ve written \$15k of code today. I can’t find the right command line option to get it to deposit that in my account.

Since I last wrote on the topic, Into the world of Virtual Hosting, I’ve split my server into two with this part being on a new virtual hosting operation. I chose RapidXen because it has IPv6 support, and is cheap. I’m using a 128M RAM/10G disk package for \$83/year, which is about the same as my 64M/2.5G package over at VPSLink.  

  • The RAM change is a little deceptive, the RapidXen box is a 64 bit machine, so a good part of the extra RAM just goes to cover that bloat.
  • The RapidXen machine is many times faster.
  • The VPSLink machine has become much slower as time has gone on. I can’t tell if they are loading the machine more heavily, or if some IO pig has moved into my server, but life is not as good as it used to be.
  • RapidXen is a smaller operation, I had to wait for a human during the setup.
  • My IPv4 address at RapidXen was pre-blocked as a spam source by AT&T, but no other black lists I could find. Sometime worth checking when you get a recycled IP.
  • You apparently have to open a trouble ticket and ask for console access to your server at RapidXen, I haven’t completed that yet. At VPSLink it is available by default with a Java based SSH client.

One person regularly corresponds with me using Hotmail. I’m frequently amused at the odd non-sequiturs at the end of his sometimes delicate email.

Lately though, the Hotmail graffiti ads don’t even make sense.

For example:

Send e-mail anywhere. No map, no compass. Get your Hotmail account now.

Because I need maps and a compass to use gmail? My Safari icon is a compass, should I not use Safari for Hotmail? Or is it a reference to paper mail where I used a map and a compass to post letters? 

Or perhaps:

Send e-mail faster without improving your typing skills. Get your Hotmail account now.

Faster? My bits already move at about light speed, that can’t be it. Perhaps the delay between pressing SEND and when it leaves the sending computer could be a few milliseconds shorter. How many people sit down to deliberately improve their typing speed so they can send email faster? Who, other than spammers, even cares how fast they send email?

https://t.me/s/TgWin_1win/708

https://t.me/s/Magik_7k

https://t.me/s/Official_1xbet_1xbet

https://t.me/s/Official_IZZI_IZZI

https://t.me/s/reyting_online_kazino/8/evolution_live_min_bet

Получи лучшие казинo России 2025 года! ТОП-5 проверенных платформ с лицензией для игры на реальные деньги. Надежные выплаты за 24 часа, бонусы до 100000 рублей, минимальные ставки от 10 рублей! Играйте в топовые слоты, автоматы и live-казинo с максимальны https://t.me/s/RuCasino_top

Получи лучшие казинo России 2025 года! ТОП-5 проверенных платформ с лицензией для игры на реальные деньги. Надежные выплаты за 24 часа, бонусы до 100000 рублей, минимальные ставки от 10 рублей! Играйте в топовые слоты, автоматы и live-казинo с максимальны https://t.me/s/TopCasino_Official

Лучшие казинo в рейтинге 2025. Играйте в самое лучшее интернет-казинo. Список топ-5 казино с хорошей репутацией, быстрым выводом, выплатами на карту в рублях, минимальные ставки. Выбирайте надежные игровые автоматы и честные мобильные казинo с лицензией. https://t.me/s/luchshiye_onlayn_kazino

https://t.me/s/money_slot_strategies

https://t.me/s/reytingcasino_online

https://t.me/TopCasino_list/10

https://taplink.cc/topcasino_rus

https://t.me/Reyting_Casino_Russia/24

https://t.me/Reyting_Casino_Russia/40

https://t.me/Reyting_Casino_Russia/47

https://t.me/casino_tax_info/3

https://t.me/s/kazinotop_ru

https://t.me/s/topspisokcasino

https://t.me/Reyting_Casino_Russia

https://taplink.cc/toprucasino

https://telegra.ph/Rejting-luchshih-onlajn-kazino-2025--TOP-nadezhnyh-sajtov-dlya-igry-na-realnye-dengi-09-15

https://t.me/s/REYtinG_casiNO_RuSSia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

https://t.me/s/Reyting_Casino_Russia

Ищешь объективный шорт-лист онлайн-казино для игроков из РФ? Сколько можно терпеть пустых обещаний? В таком случае заглядывай на ежедневно обновляемый гайд по топовым игровым площадкам, где в одном месте есть топ-подборки по бонусам, провайдерам, верификации и методам оплаты. Каждый пост — это живые отзывы, без лишней воды и всё по сути. Выбирай разумно, лови акции, опирайся на цифры и держи контроль. Твоя карта к адекватному выбору — здесь. Переходи: рейтинг лицензированные онлайн казино россия. Сегодня на странице уже горячие сравнения на эту неделю — будь в теме!

Хочешь найти подробный топ игровых сайтов для игроков из РФ? Надоели сомнительных списков? Тогда подключайся на ежедневно обновляемый канал по рекомендуемым игровым площадкам, где удобно собраны обзоры по скорости вывода, RTP, лимитам выплат и зеркалам. Каждый материал — это скрин-примеры, без лишней воды и полезная выжимка. Отбирай фаворитов, не пропускай фриспины, доверяй аналитике и соблюдай банкролл. Твой быстрый путь к максимальной информированности — здесь. Жми: топ казино по прозрачности правил россия. Сегодня в канале уже новые подборки на сентябрь 2025 — успевай первым!

Хочешь найти реальный рейтинг площадок для игры для игроков из РФ? Устал от сомнительных списков? Значит заглядывай на живой источник по топовым игровым площадкам, где в одном месте есть сравнения по кешбэку, лицензиям, службе поддержки и зеркалам. Каждый пост — это конкретные метрики, без хайпа и главное по делу. Выбирай разумно, забирай промо, ориентируйся на данные и соблюдай банкролл. Твой компас к правильному решению — по кнопке ниже. Забирай пользу: рейтинг казино pragmatic play слоты. Сегодня на странице уже актуальные рейтинги на сегодняшний день — забирай инсайты!

Хочешь найти честный рейтинг игровых сайтов с рублёвыми платежами? Устал от скрытой рекламы? Регулярно подключайся на независимый гайд по лучшим казино, где аккуратно упакованы топ-подборки по скорости вывода, турнирам, лимитам выплат и зеркалам. Каждый пост — это живые отзывы, без хайпа и всё по сути. Сравнивай альтернативы, не пропускай фриспины, вставай на сторону математики и держи контроль. Твоя карта к адекватному выбору — здесь. Подписывайся: топ казино с прозрачными правилами 2025. Сейчас в канале уже свежие топы на сегодняшний день — присоединяйся!

Подбираешь объективный шорт-лист площадок для игры с рублёвыми платежами? Устал от купленных обзоров? В таком случае подписывайся на проверенный канал по топовым онлайн-казино, где в одном месте есть топ-подборки по бонусам, RTP, службе поддержки и валютам. Каждый пост — это чёткие факты, никакой воды и всё по сути. Смотри, кто в топе, лови акции, вставай на сторону математики и играй ответственно. Твой быстрый путь к адекватному выбору — по ссылке. Подписывайся: сравнение онлайн казино пополнение через mir. Сегодня в ленте уже новые подборки на эту неделю — успевай первым!

Подбираешь реальный шорт-лист игровых сайтов с рублёвыми платежами? Надоели скрытой рекламы? Значит заходи на ежедневно обновляемый гайд по рекомендуемым онлайн-казино, где аккуратно упакованы рейтинги по фриспинам, лицензиям, службе поддержки и зеркалам. Каждая подборка — это чёткие факты, минимум воды и полезная выжимка. Отбирай фаворитов, не пропускай фриспины, ориентируйся на данные и держи контроль. Твой быстрый путь к адекватному выбору — по ссылке. Жми: сравнение выводов на visa казино. Прямо сейчас в канале уже свежие топы на сегодняшний день — присоединяйся!

Нужен объективный шорт-лист игровых сайтов с быстрыми выплатами? Устал от пустых обещаний? Тогда подключайся на ежедневно обновляемый навигатор по лучшим онлайн-казино, где удобно собраны рейтинги по скорости вывода, турнирам, верификации и методам оплаты. Каждый материал — это живые отзывы, без хайпа и всё по сути. Смотри, кто в топе, следи за апдейтами, вставай на сторону математики и держи контроль. Твоя карта к правильному решению — по ссылке. Переходи: лучшие казино с usdt выплаты россия. В этот момент в ленте уже актуальные рейтинги на сентябрь 2025 — забирай инсайты!

Хочешь найти реальный рейтинг игровых сайтов для игроков из РФ? Сколько можно терпеть скрытой рекламы? Тогда подключайся на проверенный гайд по рекомендуемым игровым площадкам, где в одном месте есть обзоры по фриспинам, лицензиям, верификации и валютам. Каждый апдейт — это живые отзывы, никакой воды и полезная выжимка. Сравнивай альтернативы, не пропускай фриспины, вставай на сторону математики и держи контроль. Твой ориентир к честному сравниванию — по ссылке. Забирай пользу: рейтинг казино с crazy time. Сейчас на странице уже свежие топы на эту неделю — забирай инсайты!

Ищешь реальный шорт-лист игровых сайтов в России? Сколько можно терпеть купленных обзоров? Регулярно подключайся на независимый гайд по надёжным онлайн-казино, где аккуратно упакованы обзоры по кешбэку, турнирам, лимитам выплат и мобильным приложениям. Каждая подборка — это конкретные метрики, без хайпа и максимум пользы. Отбирай фаворитов, лови акции, ориентируйся на данные и играй ответственно. Твой ориентир к правильному решению — здесь. Жми: топ казино лицензионные курчао. Сейчас в канале уже актуальные рейтинги на сегодняшний день — присоединяйся!

Подбираешь честный топ онлайн-казино для игроков из РФ? Устал от скрытой рекламы? Регулярно заходи на проверенный источник по рекомендуемым игровым площадкам, где удобно собраны обзоры по фриспинам, турнирам, депозитам и методам оплаты. Каждая подборка — это чёткие факты, без хайпа и максимум пользы. Отбирай фаворитов, лови акции, вставай на сторону математики и помни про риски. Твой быстрый путь к честному сравниванию — по кнопке ниже. Переходи: рейтинг онлайн казино с лицензией курчао. Сейчас на странице уже горячие сравнения на сентябрь 2025 — присоединяйся!

Ищешь реальный рейтинг casino-проектов с рублёвыми платежами? Устал от сомнительных списков? Значит заглядывай на независимый источник по надёжным игровым площадкам, где собраны рейтинги по бонусам, провайдерам, депозитам и методам оплаты. Каждая подборка — это чёткие факты, минимум воды и главное по делу. Сравнивай альтернативы, забирай промо, доверяй аналитике и помни про риски. Твой компас к адекватному выбору — по ссылке. Подписывайся: рейтинг онлайн казино egt провайдер 2025. Прямо сейчас в канале уже новые подборки на сентябрь 2025 — присоединяйся!

Хочешь найти объективный топ онлайн-казино в России? Сколько можно терпеть скрытой рекламы? Значит подписывайся на проверенный источник по рекомендуемым казино, где в одном месте есть обзоры по скорости вывода, RTP, верификации и зеркалам. Каждый пост — это живые отзывы, минимум воды и всё по сути. Отбирай фаворитов, не пропускай фриспины, опирайся на цифры и играй ответственно. Твоя карта к честному сравниванию — по ссылке. Подписывайся: топ азартные игры онлайн казино рейтинг. В этот момент в ленте уже горячие сравнения на эту неделю — будь в теме!

Подбираешь реальный рейтинг игровых сайтов с быстрыми выплатами? Сколько можно терпеть купленных обзоров? Тогда подключайся на живой источник по надёжным казино, где удобно собраны обзоры по фриспинам, провайдерам, службе поддержки и зеркалам. Каждый материал — это скрин-примеры, без хайпа и главное по делу. Смотри, кто в топе, не пропускай фриспины, опирайся на цифры и держи контроль. Твой быстрый путь к максимальной информированности — по ссылке. Жми: топ сайты казино русская поддержка. Прямо сейчас на странице уже свежие топы на эту неделю — успевай первым!

Подбираешь подробный обзор площадок для игры для игроков из РФ? Сколько можно терпеть пустых обещаний? Значит подписывайся на независимый гайд по надёжным игровым площадкам, где в одном месте есть обзоры по кешбэку, турнирам, депозитам и мобильным приложениям. Каждый пост — это конкретные метрики, без хайпа и всё по сути. Смотри, кто в топе, забирай промо, ориентируйся на данные и помни про риски. Твой быстрый путь к честному сравниванию — по кнопке ниже. Забирай пользу: лучшие казино с usdt выплаты россия. Сейчас в канале уже новые подборки на эту неделю — успевай первым!

Подбираешь объективный топ площадок для игры с быстрыми выплатами? Устал от сомнительных списков? Значит подписывайся на живой навигатор по рекомендуемым игровым площадкам, где в одном месте есть топ-подборки по фриспинам, провайдерам, службе поддержки и мобильным приложениям. Каждый пост — это живые отзывы, без хайпа и полезная выжимка. Сравнивай альтернативы, лови акции, опирайся на цифры и держи контроль. Твой компас к честному сравниванию — в одном клике. Подписывайся: сравнение онлайн казино по лимитам вывода. Прямо сейчас в ленте уже новые подборки на эту неделю — забирай инсайты!

Hello !! I came across a 137 awesome tool that I think you should browse. This platform is packed with a lot of useful information that you might find insightful. It has everything you could possibly need, so be sure to give it a visit! https://meridiano.net/servicios/como-encontrar-un-buen-casino-online-y-registrarse-paso-a-paso-2024102916470

Furthermore remember not to overlook, guys, that you constantly are able to within the article discover solutions for your most tangled inquiries. We attempted to lay out all of the data in an extremely understandable way.

Hello .! I came across a 137 awesome page that I think you should browse. This platform is packed with a lot of useful information that you might find interesting. It has everything you could possibly need, so be sure to give it a visit! https://hearthstats.net/the-revolutionary-journey-of-gaming-from-ancient-origins-to-the-ps4-revolution/

Additionally do not overlook, guys, which you always are able to in this particular publication discover solutions to address the most the very tangled queries. The authors made an effort — present all of the content via the most extremely understandable way.

https://t.me/s/a_official_1xbet

https://t.me/s/z_official_1xbet

https://t.me/s/z_official_1xbet

https://t.me/s/z_official_1xbet

https://t.me/s/z_official_1xbet

https://t.me/s/a_official_1xbet

https://t.me/s/a_official_1xbet

https://t.me/s/a_official_1xbet

https://t.me/s/Official_Pokerdomm

https://t.me/s/Official_Pokerdomm

https://t.me/s/Official_Pokerdomm

https://t.me/s/Official_Pokerdomm

https://t.me/s/Official_Pokerdomm

https://t.me/s/Rus1WIN_Casino

https://t.me/s/TeleCasino_1WIN

https://t.me/win_1_casino_play

https://t.me/win_1_casino_play

https://t.me/s/win_1_play

Bus error - founder dumped

That was a nice sixteen years.

I needed a machine to do some DNS server tests. I settled on a \$280 EEE PC 900A (stripped of webcam and half of its storage) from Best Buy. That gets me a 1.6GHz x86 server with 1G of ram that only burns 10 watts and comes with its own little console for when I need it. Not a bad deal. 

Only 4G of storage, but I’m only using about 60% even with a bunch of heavy eyecandy gnome and compiz stuff I installed to see what would happen (it is pretty fast, lower end graphic accelerator, but not many pixels comes out well).

I wiped the friendly linux it came with and installed Debian Lenny and all is good, except I kept noticing intermittent disk hangs lasting several seconds. I think I finally tracked this down to the kernel syncing out written pages. The fix is to not write so much. By mounting the partitions noatime most of my writes go away and I don’t notice hangs anymore.

Reading the first byte of every file in /usr went from 131 seconds to 92 seconds with the change (after a fresh boot each time), that is about a 30% speedup.

I’m pleased with the EEE. My code builds from clean in 1.6 seconds. I rarely use more than 10% of the RAM doing development which leaves plenty of RAM for caches to mitigate the slow flash disk. 

At last, I can put my /boot partition in LVM.

  • Get the Debian box up to Lenny.
  • Note that I accidentally trashed my MBR and had to boot into rescue mode while working out these steps. You shouldn’t do this if you follow all of the instructions, but you ought to have media handy.
  • aptitude install grub-pc (Note: this will remove the old grub package and offer to chain load grub2 from your existing grub. Do this. If you have problems you can still boot.)
  • Verify you can reboot.
  • Remove the old grub MBR and put in the grub2 one with upgrade-from-grub-legacy
  • Hide your /boot/grub/menu.lst so you aren’t tempted to edit it.
  • Your basic configuration, like kernel command line parameters is now in /etc/defaults/grub, there is also /etc/grub.d/* which I hope to never touch.
  • Move your /boot into the LVM. You could tar up your /boot partition, unmount it, and extract it onto the root partition. You could also make a new LVM managed /boot if you like it on its own partition. I was out of space in the volume groups, so I went with /. If you didn’t make a new /boot, remember to take /boot out of /etc/fstab.
  • dd zeros onto your old boot partition to make sure you aren’t deluding yourself.
  • Edit /etc/defaults/grub to add GRUB_PRELOAD_MODULES=lvm
  • Go back and make certain you did the previous step. I made an unbootable system before I learned that little tidbit.
  • Do an update-grub and a grub-install /dev/sda or whatever your disk is.
  • Go back and make sure you did the grub-install… Just update-grub is not enough to pick up the lvm module.
  • Reboot and rejoice.

I am left wondering what silliness lead to GRUB-2 being version 1.96, but I am happy.

You saved me many (more) hours of head pounding with this blog entry.  I am thoroughly grateful.

At some point in the past I managed to screw up my file server's lenny install in such a way that I ended up with the non-lvm ext2 boot partition commented out of fstab and a separate /boot directory on the lvm root.

I forgot about this incident and went about continuing to run apt-get dist-upgrade periodically.  Everything worked until I went to squeeze and rebooted, at which point I made some more poor choices ("Why am I not running the new kernel?  I'll just apt-get remove the old one!") and ended up unable to mount ext2 partitions (while still able to boot from one).

After about eight hours of head scratching I found this page and by following your steps had no trouble upgrading to GRUB 2 which booted the new kernel which fixed all the problems, allowing me to get on with my life (such as it is).

You are awesome and so is GRUB 2.

You should note that grub-pc for lenny is missing part_msdos.mod and will not install, you need to fetch it from backports to get the file.

Thanks for the info though, it helped me to confirm what I was doing would work before I sent a remote machine through a reboot (I know, dangeous, but couldn't be helped)
I have been trying to do this for 3 whole days and I finally found this post by accident. I have tried to do this with Arch Linux and Fedora and had no success. Even Google yielded no answers until I tried "Debian grub2 lvm /boot" and found this. Even though this is not written for squeeze I managed to take the bottom half and make this work. I even went as far as asking on 2 forums and in IRC channels for multiple OS's, even bugged some friends and got the usual "why would you want to do that?". Sir, I cannot thank you enough. Looks like I'm a Debian user now thanks to blogs like this.
Debian Squeeze, VirtualBox 4.0 from backports.

Debian 6.0.4 installer .iso

6 virtual disk devices
-> one physical raid partition per device
-> one RAID6 md0

One physical volume group
logical volume /
logical volume /home

The system does not manage to boot even after going in into the rescue mode and making sure grub is both configured and installed with the lvm module preloading (/etc/default/grub -> update-grub -> grub-install).

It all trips up in grub-pc (GRUB2) somehow and I do not know how to debug it.

GRUB loading.
Welcome to GRUB!

error: file not found.
Entering rescue mode...
grub rescue>


Any pointers? Did I miss and mess up any of the rescue mode superhero stuff?
I tried to wave a rubber chicken and just throw every plausibly connected module at it, but it's still a no-go.

I've seen some indirect talk about mdraid + LVM + EXT4 not being a bootable combo yet, but then again I've seen people boast about their mdraid + dmcrypt + LVM + EXT4 / BTRFS setups.

I guess I will just fall back to a good old fashioned EXT2 boot partition.

Here's my rubber chicken waving approach for the internet:

GRUB_PRELOAD_MODULES="search_fs_uuid raid raid5rec raid6rec mdraid lvm ext2 chain pci"

update-grub

grub-install --modules="search_fs_uuid raid raid5rec raid6rec mdraid lvm ext2 chain pci" /dev/sda

Little known and not terribly documented, but true:

You can tell your Debian machine to do an apt update and and download any files that you might need by adding two lines to your apt config (which I’ll bet you didn’t know you had.)

cat > /etc/apt/apt.conf.d/50autoupdate APT::Periodic::Update-Package-Lists “1”; APT::Periodic::Download-Upgradeable-Packages “1”;

Then the script /etc/cron.daily/apt will keep you all up to date savings you seconds to minutes every time you decide to upgrade.

Another good one: To use a cacheing proxy for your packages, add this line to a similar file:

Acquire::http::Proxy "http://YOURHOST:YOURPORT";

This way you don't have to mess with your /etc/apt/sources.list file to make all the proxy changes.

Cacheing common reports from a database inside the database itself is surprisingly easy and makes a huge difference for Ajax style web pages.

I have several systems that record data at regular intervals. For the sake of example let us consider a weather station which reports temperature, humidity, pressure, and wind every 10 minutes. If I want to graph this data for a three day period, I have to query out 432 of these rows and send them down to my browser. Unfortunately this is not fast enough.

Step 1: Get the browser cache working for me.

If I break the request in to midnight aligned 24 hour periods, then I can cache the result for any completed day. This way I only need to pull new days of data. 

This helps, but it turns out I don’t revisit days often during a session.

Step 2: Tune the database indices.

Fail miserably. It turns out SQLite does my query faster without indicies, so I took them off completely. (Sequential read on my virtual server is much faster than random.)

Step 3: Server side cacheing. In the database.

Now we get to the meat. I can cache pre-compressed reports for each of my daily periods. There are a couple of wrinkles though. I need some way to invalidate a report when the underlying data changes. (Sometimes some observations can be delayed and trickle in later.) I can’t think of a good way to have the database delete a cache file, so instead I store the cached copies in the database.

This turns out to be surprisingly clean to code, and a simple set of triggers on the underlying data can remove any affected report.

It would be more efficient to keep the cached reports as files, or better let in a httpd cache, but then they could not be invalidated by the database. 

Step 4: Clean up the little PHP wrapper and stick it here.

I’ll get to that.

Certain corrupt JPEG files will explode Quicktime Player if it encounters them in an “Import Image Sequence…” operation. This bug has been present for many years and shows no sign of going away.

If you are archiving images from cheap webcams you will encounter these.

I am not aware of anything included with Mac OS X Leopard that validates a JPEG file, so I built jpeginfo for Leopard. 

With that, you can do things like… for v in *.jpg ;do jpeginfo -c \$v || rm \$v ;done … to delete all the corrupted JPEGs.

You can find the sources at http://www.iki.fi/tjko/projects.html You will also need to build libjpeg, from ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz

Build libjpeg first (./configure ; make ), then build jpeginfo (./configure –with-libjpeg=THE-RIGHT_DIRECTORY ; make )

But you don’t need to do that… I’ve attached the copy I built.

Attachments

jpeginfo 103388 bytes
I might mention that there are still some jpegs that will crash the quicktime encoder that are valid according to jpeginfo, but it gets most of them.
I found a much simpler solution, there is a tool 'Corrupt JPEG Checker' for Mac OSX.
It can be found here: http://www.failedinsider.com/corruptjpegcheckermacosx/ or in the mac app store.

Saved me a lot of time.

http://www.failedinsider.com/corruptjpegcheckermacosx/
unfortunately JPEGInfo will not catch all.

the tool above catches the rest

Safari is odd with contentEditable divs. It doesn’t assume you will have a pre-formatted div as a container so it puts each line into its own div… sometimes marked with code class, sometimes not.

That makes a mess but is tolerable, until my HTML sanitizer burps out the clean version with newlines between the divs and causes accidental double spacing.

I could rewrite the ->saveHTML() method of the PHP DOMDocument to not put newlines in between divs, but that would give awful looking HTML.

For now I added a function to the sanitizer to remove extra divs from inside code formated divs. It tries to be smart about inserting newline characters, but it may not be smart enough.

Someone should revisit the whole contentEditable thing and specify precisely what is to meant by all of the operations.

more articles