dimanche 10 août 2014

Not so shallow changes - archlinux 64bits / c2d / ssd / wmii / fish

From firesales I got a cheap 80GB intel SSD. Put it in my ThinkPad X60s and basically saw jesus and allah doing the funky chicken. Everybody says it, but until you see it, you will underestimate the impact of a ~no latency disk drive. That old core duo suddenly boots in 5 seconds top. BIOS, Grub, two lcd blinks, and then desktop.

A few weeks later, actively procrastinating, I want to fix the laptop status LED at the bottom of the LCD. I found out it was probably the LCD cable, which doubles as LED driver, that might be partially failing. Having a x61 with a bricked motherboard on a shelf, I want to see if I can leverage its LCD cable, in the case it's compatible, which I don't know.

Reaching for this cable costs time since it requires to disassemble almost everything, but I'm going for it. I start with the x61 LCD block. Then remove the keyboard on my x60s to access the LCD cable socket on the motherboard. At that point I'm only testing compatibility on this side of the cable. I boot the x60s and the LCD works fine (it's badly shattered on 30% of the surface, but the panel is ok everywhere else, so I'm able to see the BIOS splash screen). #cool

Now I have to dismantle the panel from the lid etc etc, on both laptops. Only when everything is in pieces I realize, the cables are electrically compatible, meaning both sides are the same sockets and wires. But. But... the LCD panels are build upside down. One has the controller circuit at the bottom, the other at the top. The cables are built specifically for one kind, no way to stretch or fold it back, it's too short. #fail

Time to rollback. I rewire the old panel, ~difficultly. Plug cables and power supply, not the case screws since time taught me to screw things only after testing. No backlight on the LCD. I can see shades meaning pixels are drawn but no light. I unplugged the inverter cable a bit (with free scary static noise) while installing it in the lid. Easy to fix. 2nd boot, now the backlight works fine, so fine I can see a ~10pixel wide black band in the middle. It's regular and small so I try to poke around to see if the cable is not seated properly. No luck. I discover that below the LCD are running to very thin, very dense cables called 'tab bonds' which are the final panel data feeders. Indeed, fiddling with them fix the fringe of the black band, but it's not stable.

some links:

http://www.justanswer.com/tv-repair/73km2-2008-toshiba-lcd-v52xv545u-need-repair-when.html
http://www.badcaps.net/forum/showthread.php?t=25371
http://blog.stuffedcow.net/2012/03/thinkpad-x61-tablet-lcd-bubbles/
http://vimeo.com/3933798

The laptop works fine but that weird strip is too distracting. And that laptop was a little too slow, and 1.5GB of RAM too short. I have that other x61 c2d/4GB lying around. Let's retire the x60s, even though I love this little crippled bastard, he took everything I through at him. #soldier.

I plug the ssd in the x61, boot my old 32bit system. But I wanna try 64bit, because I don't like only having access to 3GB when there are 4. Also I noticed that software behaved a little differently in 64bit, so I format / reinstall everything.

To try things early I dont install xmonad/haskell, only wmii. It's a very small and ~limited window manager. But I realize it does what xmonad did, and the basic paradigm of stacked window titles is very easy on my mind. Much easier than the 2d split of xmonad (surely xmonad can emulate wmii but I'm not in the mood for writing haskell #noob).

So that's a first. I'm not missing xmonad in the slightest for my usage.

I also tried fish. I may not program in it, but it's light and ergonomically heaven compared to bash and even zsh.

Final note:

  • arch
  • base-devel (gcc, make...)
  • python3, guile ...
  • emacs
  • chromium
  • alsa, cmus, mpv
2.5GB (including pacman and chromium caches, so more ~2GB).

Pretty slick.

vendredi 7 mars 2014

taking notes aka compiler targetting your brain ISA

learning better by correlating one domain to another. idea into graphemes. idea into actions, into spoken words, shapes.

remember taking notes in high school. The more I paid attention to formatting the better I learned. First I pruned the content. Similar to the original meaning of lecture, I sorted and picked words differently. IIRC it was mostly based about the "newness" of a subpart of the concept discussed. The less I understand it, the more carefull I'll be when writing it down, the more space I'll allocate to this part. It's a differential overlay of my brain. The format was important too, even though I despise the term format for it's superficial conotation, it is a reflection of relationships between ideas. Most of the time it's nested (up down dimension). But there's also aside dimensions which made me use colors to denote comments or any kind of lateral relationship. In the end it looked like the handwritten projection of a DAG into a yaml/xml structure. Maybe the term ontology would fit.

dimanche 2 mars 2014

xargs, map and gnu parallel -- async

Fed up with `xargs` syntax, I googled for rants about it being a poor `map` function, and found ... `map`: gitolite.com/map/map.html. Someone wrote a lighter non parallel `gnu parallel` and called it map.

Redditors didn't think it was important and mentioned gnu parallel being better so I reinstalled it. My first attempt a few years ago didn't go very well. Since I gained the ability to RTFM. So I can do some basic stuff. And I also read some blog article ... Weak me.

Here's a small test reminding me of talks about golang, async, concurrency etc :

$ time parallel -j12 ping -c1 ::: DOMAINS &> par

real    0m11.023s
user    0m0.563s
sys     0m0.110s

$ time for dom in DOMAINS; do ping -c1 "${dom}" ; done &> seq

real    1m1.509s
user    0m0.013s
sys     0m0.027s

DOMAINS is {google,amazon,microsoft,yahoo,bing}.{com,fr,co.uk}

QED

ps: someone suggested me these too
  - parallel tutorial
  - parallel man #example(s)

lundi 17 février 2014

Using pyvenv and pip under python 3.3 -- article list

Just a quick gathering

- http://homework.nwsnet.de/releases/8aff/
- http://www.gossamer-threads.com/lists/python/python/1038291
- http://robinwinslow.co.uk/2013/12/26/python-3-4-virtual-environment/

dimanche 8 décembre 2013

org-mode - markdown backend -- Emacs 24.3.1

A little reminder of something I failed to do before. Org-mode has optional export backends, some are loaded by default:

(message "%S" org-export-backends)
;; "(ascii html icalendar latex)"

(add-to-list 'org-export-backends 'md)

(message "%S" org-export-backends)
;; "(md ascii html icalendar latex)"

Now in an org-mode buffer, `C-c C-e` (org-export-dispatch) will have a markdown entry accessible through `m`.

ps: done on GNU Emacs 24.3.1 (i686-pc-linux-gnu, GTK+ Version 3.8.2) of 2013-08-07 on -mnt-storage-buildroots-staging-i686-eric; archlinux

mercredi 9 octobre 2013

lambda linguistic and logical interface

For a long time I've been amazed how much the `lambda` expression construct gives you. The introduction of name into expressions is seen through `let` which is syntactic sugar for lambda underneath. I believe Scala `for` nested iterations are also syntactic sugar toward flatmap + lambda. It's also a clean expression of data dependency. The sub-expression has meaning only if the lambda abstraction can be reduced by application to values. Otherwise well it's another smaller lambda expression. Wonderful.

reified side effects

Just wondering if there was some research into reifying the effected external entities back into the 'denotation'.

Instead of

f :: a -> b -> IO ()

you'd get

f :: e -> a -> b -> e

now that e is inside our algebra, maybe we can see programs as pairs (local,global)
bound by a protocol, or a fixed model of state transitions.

that's all.