Skip to content

Das Keyboard: Disassembly and Analysis

Before delving into Das Keyboard I’d like to take the opportunity to show you the trailer video of the Ultimate Hacking Keyboard, a high-end mechanical keyboard of which I’m the lead developer. Our keyboard is going to be kickstarted soon so you’re more than welcome to share it, follow us and subscribe to our list to get notified when our campaign starts. See you on UltimateHackingKeyboard.com! Cheers!


And now on to Das Keyboard…

I felt the need to disassemble Das Keyboard and see what makes it tick.  Just to make things clear, I think that Das Keyboard is the best traditional PC keyboard ever created, but not the best keyboard that is possible to create because the standard PC layout requires too much travel distance for various keys and it’s suboptimal from the typewriter’s perspective.  No, I don’t mean DVORAK, but something that I could call QWERTY Compact that is very easy to learn.  But that’s the topic of another post.

First of all, I want to apologize for some of the crappy pictures.  My friend, Dömi and I did everything we could do to make reasonably good pictures but the lighting was less than optimal and we’re pretty unexperienced at making such photos.  Anyways, let’s see what we have!

das-keyboard-disassembly-1

This is the back of the keyboard clearly showing where the screw holes are.  You have to harm the central warranty label so say bye-bye to the guarantee if you proceed further.  You also have to remove the upper rubber feet to access the screws, but you’ll be able to easily glue them back later.

das-keyboard-disassembly-2

Now comes the tricker part.  There are some hooks that hold together the front part and the back part of the keyboard.  It looks like this:

das-keyboard-disassembly-3

I think it’s probably impossible to disassemble the keyboard without breaking some of these hooks, but you don’t really have to worry because the screws alone will hold the front part and the back part pretty tightly so you’ll be perfectly able to use your beloved Das Keyboard after assembling it.  You have to pressure the hooks from the sides with some handy tool to disassemble the front and the back parts.

Now let’s see what’s inside!

das-keyboard-disassembly-4

After removing the keycaps (which is a pretty easy job) you can see the soul of Das, the Cherry MX tactile keyswitches.  They are both extremely durable and extremely enjoyable to type on.  I’d like to note that it’s a misbelief of some people that different pressure sensitivity is required for various switches, namely that less force is needed to press a switch as the distance from the center gets longer.  Every key needs constant pressure, about 50g.  I’ve measured the constant pressing force by placing some coins on different keycaps.

das-keyboard-disassembly-5

We have lots of those switches, this obviously does not make Das a cheap keyboard.  The switches are panel mounted, not PCB mounted.  Panel mounting is a more robust solution than PCB mounting.  Panel mounting also make Das more expensive, so think about what does this keyboard provide for its price before saying that it costs too much.

das-keyboard-disassembly-6

The keycaps are not ordinary either.  When seeing Das from its side it’s easy to notice that the top of the keys form a slight U shape.  This shape is more optimal for typewriters than the much more common linear shape used by the rest of the keyboards (not counting the Model M and Unicomp keyboards).  Because of this shape, each row has to close a different angle with the base panel than the other rows.

das-keyboard-disassembly-7

The keys are attached to the PCB (but they sit on the aluminium panel shown above).  Most dome switch keyboards use foil, but we’re not dealing with mediocre quality here.

das-keyboard-disassembly-8

Das uses diodes to implement N-key rollover.  Let me note that it doesn’t implement true N-key rollover, only 10-key rollover, but it’s hardly a limitation as most of us have 10 fingers.

das-keyboard-disassembly-9

The controller PCB is definitely not an ordinary one.  The left IC is a Genesys GL850G USB hub controller and the right baby is a Holtek HT82K95E USB Multimedia Keyboard Encoder 8-Bit MCU.

das-keyboard-disassembly-10

After using Das for some weeks I could hear some squeaky noise when pressing the space bar.  I was more than surprised because everything else was so terrific about the keyboard.  After I applied some lubricating grease to it the irritating voice gone away.  Some grease should be applied to these wires during the manufacturing process.  Apart from that I cannot say any bad things about Das.

You probably pretty much know my opinion about Das after reading this post, but let me say a word of wisdom at the end.  You can buy many crappy keyboards throughout your life or one real keyboard.  The choice is yours.  You know which I opt for.

You can check out higher resolution photos in a separate Google+ album.

Thanks for Werner Heuser for linking this post on Repair4Keyboard.com.

Kickass black Midnight Commander color scheme

Most people use Midnight Commander with the default blue color scheme which is hard for me to understand because I think it’s terrible and I’ve always preferred it with black colors.

midnight-commander

Here’s what you need to include into mc.ini:

[Colors]
base_color=linux:
normal=white,black:
marked=yellow,black:
input=,green:
menu=black:
menusel=white:
menuhot=red,:
menuhotsel=black,red:
dfocus=white,black:
dhotnormal=white,black:
dhotfocus=white,black:
executable=,black:
directory=white,black:
link=white,black:
device=white,black:
special=white,black:
core=,black:
stalelink=red,black:
editnormal=white,black

Do not put newlines between the color definitions! Write them as a single line! I only did it for readability.

Update: Starting from Ubuntu 10.4 Lucid Lynx you’re advised to skip the menu and menusel definitions because the those will mess up menu colors.

Translate Rapid Team – Csengesd ki a zsét, fordí­ts nekünk, aztán hátat fordí­tunk neked

Gondoltál már arra, hogy kamatoztasd a nyelvtudásodat azzal, hogy egyéni szövegeket fordí­ts le anyagi juttatásért cserébe? Ha igen, akkor talán te is találkoztál már a Translate Rapid Team nevével, oldaluk a translater.hu.

A fenti cí­mből már sejtheted, hogy ez nem az a “cég”, amiből pénzt fogsz csinálni. Az alábbiakban leleplezem ezt a pitiáner csalót, mert nem akarom, hogy akárki is áldozatául essen a jövőben hozzám hasonlóan.

Látszólag nagyon jól megy nekik a biznisz, mert folyamatosan keresik a balekokat. Ráadásul a hirdetések szövegében nagylelkűen megadtak egy telefonszámot: 06 21 382 9456, amely szám egy IP alapú telefon, ami rejtélyes alapon folyton foglaltat jelez. Persze ugye kizárt, hogy szándékosan jelezzen foglaltat annak érdekében, hogy fenntartsa az illúziót, mintha ennek a cégnek telefonszáma is lenne, nem igaz?

A sztori itt kezdődik, felveszem velük a kapcsolatot :

From: László Monda
To: <info@translater.hu>
Sent: Friday, February 23, 2007 11:19 AM
Subject: Fordí­tói állás

Tisztelt Uram / Asszonyom!

Olvastam a honlapjukon a fordí­tói állásajánlatukról és érdekel ez a
lehetőség. Ezúton csatolom az önéletrajzomat magyarul és angolul, PDF,
OpenOffice és Microsoft Word formátumokban.

Várom mielöbbi válaszát!


Monda László

Megkapom a tájékoztatóanyagot :

From: TRA-INFO <info@translater.hu>
Date: 2007/2/23
Subject: Re: Fordí­tói állás
To: László Monda

Tisztelt érdeklődő!

Köszönjük jelentkezését, csatolva küldjük a részletes tájékoztatóanyagunkat.

Üdvözlettel:
Translate Rapid Team

CSATOLMÁNY: info.doc

Rendben, kérem a próbaszöveget :

From: László Monda
To: “TRA-INFO” <info@translater.hu>
Sent: Saturday, February 24, 2007 12:20 AM
Subject: Re: Fordí­tói állás

Üdvözlöm!

Elsősorban angolról szeretnék magyarra fordí­tani. Gyakorlatilag
mindenféle szöveget könnyen és pontosan le tudok fordí­tani, lényegében
több angolt olvasok, mint magyart. A számí­tástechnikai szakszöveg a
legfőbb erősségem, de sok self-help (önfejlesztő) anyagot is olvastam
már, ezenkí­vül pedig mindenféle témát.

A magyarról angolra történő fordí­tással is megpróbálkoznék. Bár
időnként vétek nyelvtani hibákat, szí­vesen fogadnék egy
magyarról-angolra szintfelmérőt is Önöktől, hogy kiderüljön, hogy
megfelelek -e magyarról angolra történő fordí­tások tekintetében az Önök
számára.

Jelenleg csak félmunkaidőben dolgozom, í­gy elég sok szabadidőm van,
tehát a fordí­tási feladatokat tipikusan 1-2 napon belül el tudom
kezdeni, amennyiben azt a határidő megkí­vánja. A fordí­tási
sebességemről nem tudok konkrét adatokat mondani, mert eddig még nem sok
ilyen jellegű fordí­tást végeztem, de szerintem napi pár oldalt el tudok
vállalni általában, amikor ráérek.

A mobil telefonszámom: **/***-**-**

A kérésükre újfent csatoltam az önéletrajzomat magyar és angol formában,
nyelvenként 3-3 formátumban.

Várom a próbaszövegeket.

Monda László

Megkapom a próbaszöveget :

From: TRA-INFO <info@translater.hu>
To: László Monda
Date: Mon, Feb 26, 2007 at 7:48 AM
Subject: próbafordí­tás

Tisztelt Monda László!

Köszönjük levelét, csatolva küldjük a magyar nyelvű próbaszöveget. Kérjük
angol nyelvre fordí­tsa le legjobb tudása szerint!

Jó munkát,
Üdvözlettel:

Tamás Miklós
TRT

CSATOLMÁNY: TTHUN 55.doc

Hurrá, sikerült a fordí­tás! :

From: TRA-INFO <info@translater.hu>
To: László Monda
Date: Mon, Mar 19, 2007 at 6:58 AM
Subject: értékelés

Tisztelt Monda László !

Visszaküldött próbafordí­tása alapján örömmel tájékoztatjuk, hogy a munkája
minosége megfelelo volt.

Örömmel vennénk, ha csatlakozna csapatunkhoz! Ha í­gy dönt, kérjük küldje
vissza kitöltve a megküldött urlapot, és az éves nyilvántartási dí­jat (3000
HUF) utalja a

10401024-76535351-53481000

számlaszámra (K&H)! (A bankszámla Váradi Zalán Ferenc nevén van /a TRT
tulajdonosa/, továbbá kérjük a megjegyzés rovatba feltüntetni a befizeto
nevét, és a “tagdí­j” szót) Amint a számlán megjelenik az összeg, a tagság
kezdetét veszi. A továbbiakban ez a nap lesz a tagsági év fordulónapja is!

Üdvözlettel:
Tamás Miklós
Ügyvezeto

Translate-Rapid Team

CSATOLMÁNY: ADATLAP M1.doc

Mikor történik a fizetés? :

From: László Monda
To: “TRA-INFO” <info@translater.hu>
Sent: Tuesday, March 20, 2007 11:50 AM
Subject: Re: értékelés

Tisztelt Tamás Miklós!

Ezúton csatolva visszaküldtem a kitöltött űrlapot.

Mielőtt befizetném az összeget a bankszámlaszámukra, az lenne a
kérdésem, hogy a fizetés hogyan történik. Előreláthatólag körlülbelül
mennyit kell majd várnom a fordí­tásom elküldése után, amí­g a fordí­tási
dí­jat megkapom?

Előre is köszönöm a válaszát!


Monda László

Egy hónapon belül “fizetnek” :

From: TRA-INFO <info@translater.hu>
To: László Monda
Date: Tue, Mar 20, 2007 at 2:44 PM
Subject: Re: értékelés

Tisztelt Monda László!

A kifizetések az anyag visszaküldése utáni 15-30 banki napon belül történik meg, feltéve ha nem emelt senki minőségi kifogást az adott munkával kapcsolatban, és a megbí­zó is fizetett. A gyakorlat azt mutatja, hogy 2-3 hét, amí­g a megrendelő fizet, és mi is tudjuk utalni a fordí­tói dí­jat.

Üdvözlettel:

Tamás Miklós
Ügyvezető
Translate Rapid Team
http://www.translater.hu

Naí­van átutalom a pénzt :

From: TRA-INFO <info@translater.hu>
To: Monda László
Date: Wed, Mar 21, 2007 at 6:47 AM
Subject: tagság

Tisztelt Monda László!

Értesí­tjük, hogy tagsági dí­ja beérkezett,

Adatait felvettük nyilvántartási rendszerünkbe.
Tagsági fordulónapja: Március 21.

Üdvözlettel:

TRT

Ekkor Horvátországi nyaralásom közepette küldtek egy levelet, amit csak jóval késve olvastam el :

From: TRA-INFO <info@translater.hu>
To: Monda László
Date: Fri, Aug 3, 2007 at 5:23 AM
Subject: munka

Tisztelt Tagunk!

Érdeklődünk, el tudja-e vállalni a következő munkát:

Forrásnyelv: magyar
Célnyelv: német, angol, francia (értelem-szerűen a választott nyelven)
Jelleg: forgácsoló üzem-feladatkií­rás
Terjedelem: 20 oldal
Formátum: PDF ből Wordbe
Dí­jazás: 1,2 HUF/leütés
Határidő: 2007-08-10, péntek reggel 8:00

Kérjük, minél hamarabb jelezzen vissza, tudja-e vállalni!

Ezt a levelet egyidejűleg több tagunknak is elküldtük.

Automata értesí­tőt nem veszünk figyelembe!

Üdvözlettel:
TRANSLATE-R csoport

Mivel a naptáramba felvettem a tagsági időpontot és kevesebb, mint tí­z fordí­tandó anyagot küldtek egy éven belül (konkrétan egyet), í­gy kérem vissza a pénzem :

From: László Monda
To: TRA-INFO <info@translater.hu>
Date: Fri, Mar 21, 2008 at 1:18 PM
Subject: Tagsági dí­j visszafizetés

Tisztelt Uram / Hölgyem,

Mivel a tagságom pontosan egy évvel ezelőtt kezdődött és azóta mindössze
egy fordí­tandó anyagot küldtek (amit nem tudtam elvállalni révén, hogy
nyaraltam), azt hiszem a szabályzatuk alapján jogosult vagyok a tagsági
dí­j visszafizetésére.

A bankszámlaszámom: ********-********-********

Kérem í­rja meg, hogy mikor tudják utalni az összeget!

Minden jót!


Monda László

Mivel Miklós bátyánknak bizonyára “technikai problémái” vannak, í­gy újból felszólí­tom :

From: László Monda
To: TRA-INFO <info@translater.hu>
Date: Sun, Mar 30, 2008 at 11:32 PM
Subject: [Fwd: Tagsági dí­j visszafizetés]

Tisztelt Uram,

Nem válaszolt a csatolt levelemre.

Kérem tegye meg ezúton!


Monda László

Miklós nagylelkűen küld egy sablonlevelet. A technikai problémák mellé már nyí­lvánvaló emlékezetkiesés is társul :

From: TRA-INFO <info@translater.hu>
To: László Monda
Date: Mon, Mar 31, 2008 at 5:07 AM
Subject: Re: Tagsági dí­j visszafizetés]

Tisztelt Monda László!

Kérem ha kérdése van, akkor í­rja meg, készséggel válaszolunk mindenkinek.

Üdvözlettel:

TRT

És akkor utoljára megpróbálom visszakérni a zsét :

From: László Monda
To: TRA-INFO <info@translater.hu>
Date: Mon, Mar 31, 2008 at 10:15 PM
Subject: Re: Tagsági dí­j visszafizetés]

Üdvözlöm!

On Mon, 2008-03-31 at 06:07 +0200, TRA-INFO wrote:
> Tisztelt Monda László!
>
> Kérem ha kérdése van, akkor í­rja meg, készséggel válaszolunk mindenkinek.

Az alábbi levelet küldtem önöknek egy-két hete, kérem ezúton válaszoljon
rá:

Mivel a tagságom pontosan egy évvel ezelőtt kezdődött és azóta mindössze
egy fordí­tandó anyagot küldtek (amit nem tudtam elvállalni révén, hogy
nyaraltam), azt hiszem a szabályzatuk alapján jogosult vagyok a tagsági
dí­j visszafizetésére.

A bankszámlaszámom: ********-********-********

Kérem í­rja meg, hogy mikor tudják utalni az összeget!


Monda László

Mondanom sem kell, nem utaltak semmit és válasz sem érkezett.

Az esetről emlí­tést tettem később Visnyei László barátomnak, aki elhatározta, hogy utánanéz a dolognak, í­gy ő is jelentkezett az elit alakulathoz és kapott egy próbafordí­tást. Történetesen ugyanazt a szöveget kapta, mint én, minő véletlen, í­gy csak másolás-beillesztésből állt a feladata.

From: TRA-INFO <info@translater.hu>
Date: 2008/4/29
Subject: értékelés
To: Laszlo Visnyei

Tisztelt Visnyei László!

Visszaküldött próbafordí­tása alapján örömmel tájékoztatjuk, hogy a
munkája minősége megfelelő volt.

Örömmel vennénk, ha csatlakozna csapatunkhoz! Ha í­gy dönt, kérjük
küldje vissza kitöltve a megküldött űrlapot, és az éves nyilvántartási
dí­jat (3000 HUF) utalja a

12010855-00056162-00100001

számlaszámra (Raiffeisen)! (A bankszámla Váradi Zalán Ferenc nevén
van /a TRT tulajdonosa/, továbbá kérjük a megjegyzés rovatba
feltüntetni a befizető nevét, és a “tagdí­j” szót) Amint a számlán
megjelenik az összeg, a tagság kezdetét veszi. A továbbiakban ez a nap
lesz a tagsági év fordulónapja is!

Üdvözlettel:

Tamás Miklós
Ügyvezető
Translate-Rapid Team

CSATOLMÁNY: ADATLAP M1.doc

Ekkor Laci ügyesen puhatolózik :

From: Laszlo Visnyei
To: TRA-INFO <info@translater.hu>
Date: Wed, Apr 30, 2008 at 7:30 PM
Subject: Re: értékelés

Tisztelt Ügyvezető Úr!

Örömmel csatlakozom a teamhoz. Sajnálatosan kimaradt a szerződés az
emailból, csak az adatlapot találtam benne. Megtenné, hogy újraküldi?

Köszönettel:
Visnyei László

És a megdöbbentő válasz :

From: TRA-INFO <info@translater.hu>
Date: 2008/5/5
Subject: Re: értékelés
To: Laszlo Visnyei

Tisztelt Visnyei Úr!

A szerződés nem maradt le, szerződés nincs. Ha van kérdése, kérem ne
habozzon, készséggel válaszolunk minden felmerülő kérdésre.

Üdvözlettel:

Tamás Miklós
Irodavezető
TRT

Nincs szerződés? :

From: Laszlo Visnyei
To: “TRA-INFO” <info@translater.hu>
Sent: Friday, May 09, 2008 9:13 AM
Subject: Re: értékelés

Kedves Miklós,

De ha nincs szerződés, akkor hogyan tudom a bevételt a cégemben
megjelentetni, illetve hogyan kapok számlát például az Önöknek
kifizetett tagdí­jról?

Üdvözlettel: Visnyei László

Nincs szerződés :

From: TRA-INFO <info@translater.hu>
Date: 2008/5/9
Subject: Re: értékelés
To: Laszlo Visnyei

Tisztelt Visnyei Úr!

A fordí­tóink zöme nem számlaképes, í­gy a rendszerünk úgy van
kialakí­tva, hogy nem kell számla. ( Privát számláról és -ra, az áfát
mi fizetjük ki, a tőlünk kimenő utalásokat a fordí­tók SZJA keretén
belül vallják be.) Ha Ön cégesen szeretne együttműködni, arra is van
mód. Tagdí­j (regisztrációs dí­j) nem számlaképes kategória, a
fordí­tásokért a dí­jazást ha van rá igény, akkor utalhatjuk céges
számláról, ha Ön tud számlázni 74.85.13.0 -s SZJ számmal.)

Üdvözlettel:

Tamás Miklós
TRT

Akkor ez most sikkasztás? :

From: Laszlo Visnyei
To: TRA-INFO <info@translater.hu>
Date: Fri, May 9, 2008 at 9:22 PM
Subject: Re: értékelés

Tisztelt Tamás Úr!

De ha a tulajdonos magánszámlájára küldöm a pénzt, az hogy kerül be az
önök cégébe? Valamint ha nincs szerződés köztünk, és Önök valamilyen
okból nem tudják a vállalt kötelezettségeiket teljesí­teni (közvetí­tett
munkák száma), hova tudok jogorvoslatért fordulni?

A hosszas, kétségbeesett magyarázkodás a tagdí­j reményében :

From: TRA-INFO <info@translater.hu>
Date: 2008/5/10
Subject: Re: értékelés
To: Laszlo Visnyei

Tisztelt Visnyei Úr!

A válaszok:
A tagdí­j nem kerül be sehogy a cégünkbe. (Ezért ilyen kevés)
Ha mi valamilyen okból nem tudjuk vállalni a kötelezettségünket, akkor
polgári peres úton érvényesí­theti a jogait.

És akkor kicsit bővebben:
Fontos tudni, hogy nem vállalunk kötelezettséget semmire, de különösképpen
nem a közvetí­tett munkák számára vontakozóan! Kérem olvassa el figyelmesen a
tájékoztatót.
Szintén a figyelmébe ajánlom a bizalmi elvről szóló részt, hiszen egyfelől,
ha az együttműködés során Ön az, aki nem teljesí­ti a vállalt
kötelezettségét, akkor mi hova fordulhatunk jogorvoslatért? És ha lenne
szerződés, az mit oldana meg, ha bármelyikünk nem tartaná magát a válallt
kötelezettségeihez? Igen, beperelhetjük egymást, és végigkí­sérhetjük a
magyar jogrendszer évekig tartó huzavonáját, miközben egyáltalán nem biztos,
hogy igazságos döntés születik, lettlégyen bármelyikünknek is igaza.

Mi a rendszerünket úgy alakí­tottuk ki, hogy praktikus, gyors és hatékony
működést tudjunk azáltal megvalósí­tani. AZ Ön által hiányolt szerződés a
világon semmit nem javí­tana ezen a három tényezőn, ellenben okozna egy csomó
plusz költséget, és még több adminisztrációt. Ezért nem alkalmazzuk. Én azt
ajánlom önnek, hogy ne hozzánk csatlakozzon, hanem keressen egy olyan
fordí­tóirodát, ahol státuszba veszik, rendes munkaszerződés keretén belül
alkalmazzák.

Üdvözlettel:

Tamás Miklós
TRT

És akkor Laci megmondja a frankót :

From: Laszlo Visnyei
To: TRA-INFO <info@translater.hu>
Date: Tue, May 27, 2008 at 12:14 PM
Subject: Re: értékelés

Miklós,

Amennyiben én egy céggel szerződök, akkor a pénzt a cég számlájára
kell befizetnem. Ha nem a cég kapja, hanem a “tulajdonos” ahogy ön
szeretné, akkor az bűncselekmény – sikkasztás.

Gondolom nem ez az első eset, amikor ilyenre kí­vánnak valakit rávenni.
Tud erről a rendőrség?

Gondolom ön is használja az utakat, este az önök utcájában is van
közvilágí­tás. Ezt az adónkból fizeti az állam. Aki ezt az adót el
akarja kerülni, az megvetésre méltó, és megérdemli a törvény szigorát.

Szégyellje magát, Megteszem a szükséges intézkedéseket.

VL

Elérkeztünk a történet végéhez.

Hogyan tovább? Nos, első körben teleszórom az általuk használt online hirdetési felületeket ennek a posztnak a linkjével, aztán az adóhatósággal is elbeszélgetek róluk.

DohanyzoBuszsoforok.hu

  • by

DohanyzoBuszsoforok.hu – Már régóta össze akartam hozni ezt a szájtot, de időhiány miatt eddig húzódott.

Kí­váncsi vagyok, hogy milyen hatása lesz, hány ember küld a segí­tségével leveleket. Folytattam egy kisebb PR tevékenységet, megkerestem a releváns szájtokat, hogy emlí­tést tehetnének róla. Ha ismersz egy témábavágó oldalt, akit érdemes lenne tájékoztatni, ne habozz szólni!

Searching for the Ultimate Keyboard

About a year ago, when I worked for one of my earlier employers, I refactored much of their messy, legacy code. Thousands of lines of spaghetti code in PHP… It was a tough job.

My task was logically complex, but it was also a valuable lesson regarding human-computer interaction. I often had to navigate various source files, and my keyboard made my job harder than necessary. There are two operations that I particularly dislike:

  1. Moving my hand between the keyboard and the mouse
  2. Moving my hand between the alphanumeric keys and the navigational / function keys

The above operations are time-consuming. The travel distance of the hand is larger in the first case because the hand needs to travel above the navigational and numeric blocks to reach the mouse in the case of a right-handed user. The travel distance is shorter in the second case, but leaving and re-entering the home row upon cursor navigation is counter-productive.

Since that day of enlightenment, I’ve been brainstorming about the perfect keyboard day by day. This is a special keyboard, and I don’t foresee everyone using it; it mainly serves the niche of computing professionals.

The requirements for the Ultimate Keyboard are the followings:

  1. Every possible interaction, be it a key press or a mouse pointer movement/button action, must be done without any hand movements (moving fingers is allowed).
  2. A short learning curve must be required to master the keyboard within a week of daily, intensive use.
  3. Ergonomic comfort is a must for computing professionals, which this keyboard must provide through long hours of uninterrupted use.

I’ve done some research, and there are some interesting keyboards, but none of them satisfy all the above requirements.

combimouse satisfies 2) and maybe 3) but fails to satisfy 1) because the right hand must move up and down to navigate keys and change between keyboard and mouse mode. Also, I don’t think moving the whole right half of the keyboard is a good idea for pointer movements. The keyboard itself shouldn’t be moved.

The Ergonomic Touchpad can also do a good service when placing it on the keyboard, although some pointer actions are hard to do with it, I believe.

Kinesis has some revolutionary keyboards (also watch the YouTube videos) that definitely satisfy 3), and most of them satisfy 2), but none of them satisfy 1).

Goldtouch is another brand that I see potential in. They are more conventional than Kinesis, but I think they know what they’re doing, and their keyboards may be very pleasurable to use (see YouTube video). I think their products definitely satisfy 3) and 2), but not 1).

I know most of the specifics, but I don’t want to share more details in this post because I want to build a product out of them. I’m quite confident that I have a correct vision that satisfies all of the above requirements and can lead to a unique keyboard that skyrockets developer productivity.

The one thing I’m not sure of is the ergonomics. I’m unsure which angle the keyboard should reside at and which height. I’ve talked to some of my friends who have special knowledge, like designing and creating the keyboard case and designing and manufacturing the integrated circuits. Still, I don’t know anyone who is an ergonomics and usability expert. The last thing I’ll do is give up; this is too much of a challenge and a very interesting project.

Szelektí­v hulladékgyűjtés Szegeden

  • by

Bár sok hasznos információ található a szegedi hulladékgyűjtő szigetekről és a különböző hulladéktí­pusok kategorizálásáról a Szegedi Környezetgazdálkodási Kht. honlapján, de az ott található dokumentum nem tér ki néhány kérdésre, amelyek nem voltak világosak előttem. Miután szí­vélyesen megválaszolták a kérdéseimet, kiteszem a válaszokat ide, hogy mindenki által elérhetőek legyenek.

Hulladékok osztályozása

Milyen hulladéknak minősülnek a samponok, tusfürdők, amelyek nem kifejezetten veszélyes hulladékok de kémiai jellegűek?

Ezen flakonok, mint ahogyan a folyékony mosogatószeres flakonok is, mehetnek a műanyag közé, kimosva. Bár azok a vegyszeres flakonok, amelyek halálfejes ábrát tartalmaznak, mint például sósav, azok már veszélyes hulladékok, nem mehetnek sem a szelektí­v hulladékgyűjtőbe sem a kommunálisba. Azok bármelyik hulladékudvaron leadhatók, magánszemélyként dí­jmentesen.

A csoki papí­rok mindig celofán alapú anyagok? Honnan tudom megállapí­tani, hogy egy ilyen papí­r celofán alapú -e vagy sem?

A csokicsomagolás legkülső részét a paí­rt nyugodtan dobd a papí­r hulladék közé, persze csak akkor ha nem szennyezett sem olvadt csokival, sem mással. A belső részét, ha fényes fém és a csokit hűtőben tároltad és nem olvadt rá erre a fényes fém belsőre – bár ennek kisebb az esélye – akkor fém hulladékként kezelhető. A másik eset, amikor nem fémbe van becsomagolva a csoki hanem celofán jellegű műanyagba, akkor az a műanyag kommunális hulladék, mert biztos szennyezett. Szóval a csokipapí­rral kapcsolatban a külső borí­tás menjen a papí­rgyűjtőbe, semmi más, a többi része kommunális.

Az olyan hulladékok, amelyek különböző tí­pusú anyagokból állnak össze és nem szétválaszthatóak. Egy ilyen sarkallatos eset például a söröskupak. Ez alapjában fém, viszont műanyaghártya van a belső részén és bizonyos fajtáit fémes papí­r borí­tja be.

Ez a szennyezettség minimális, tehát nyugodtan sorolható a sörös kupak a fém hulladékhoz, bár terjedelmileg annyira kicsi, hogy ha zöld zsákba gyűjtöd, és ebben kerül be a válogatócsarnokba, akkor ezek a kis méretű hulladékok a dobszitán ki fognak esni, és kommunális hulladék részét fogják képezni.

Ha valami olyan anyagot dobok ki szelektí­v nem-kommunális hulladékként, amelyben előzőleg volt valamilyen folyékony anyag (kivéve ásványví­z), akkor azt minden esetben el kell mosnom?

Ha üdí­tő volt benne, akkor nem, elég ha kicsepegteted, bár a rostos üdí­tős dobozból (többrétegű italoskarton, ami gyűjthető együtt a többi műanyag hulladékkal) elég nehéz kifolyatni mind egy cseppig az üdí­tőt, tehát ennél inkább öblí­tsd el ví­zzel. A tejes, tejszí­nes UHT-s dobozokat ami szintén többrétegű italoskarton doboz, mindenképpen ki kell lehetőleg meleg ví­zzel öblí­teni, mert különben bebüdösödik, és nem veszi át a Szegedi Környezetgazdálkodási Kht.-tól a feldolgozó. A háztartásban keletkezett, egyszer használt étoljaos flakonok is kimosás után műanyag hulladéknak minősülnek, persze ezeket a flakonokat “tapossuk laposra”, hogy minél kevesebb helyet foglaljanak és ezáltal gazdaságosabbá váljon a szállí­tás, csökkentve ezzel a környezetterhelést.

Mit kezdjek a különböző elektronikai termékekből (például számí­tástechnikai eszközök és háztartási gépek) létrejött hulladékkal? Ezeket hol tudom leadni?

A magánszemélyként képződött elektronikai hulladékot (hűtő, mosógép, számí­tógép, monitor, stb.) a hulladkégyűjtő udvarokon adhatod le. Amennyiben nagyobb mennyiségben, tehát gazdasági egységként keletkezett elektronikai hulladékod van, annak a hulladékudvarra történő beszállí­tása költséget von maga után.

Szegeden hol találom a hulladékgyűjtő helyeket?

A műanyag-, üveg- és papí­rhulladékokat elviheted a szelektí­v hulladékgyűjtő szigetekre.

Fémhulladékot gyűjtő kukákat találsz az egyetem egyes épületeiben és a Tanulmányi Információs Központban. A Hattyas sori konditeremben is találsz ilyen kukákat.

A használt elemeknek és akkumulátoroknak az Irinyi épületen belül van egy gyűjtődoboza. Ahogy belépsz az épület kapuján, jobbra találod az első lépcsőházat. Menj be az ajtón és rögtön szembe találod magaddal a dobozt, két méterre előtted.

A veszélyes hulladékot a hulladékudvarokon adhatod le. Hulladékudvart találsz Gyálaréten, Újszentivánon, Tiszaszigeten, Kiskundorozsmán, stb. A pontos részleteket és a további hulladékudvarok felsorolását megtalálod a Szegedi Környezetgazdálkodási Kht. honlapján. 2007-ben további 29 hulladékudvart fognak épí­teni Szegeden és környékén.

Kapcsolódó anyagok

Környezettudatos vásárlás karácsonykor

My Thesis Is Ready

  • by

I’ve been pretty busy on the last week writing my thesis. I’ll only graduate in the next year, but I had to make it that soon. It’s about UC and it looks pretty cool, actually cooler than on this picture.

thesis

I’ve just uploaded the paper to my home page into the Hungarian section. So grab it if you’re fluent in Hungarian.

I’d like to thank my mentor, Vilmos Bilicki for his help. He has been very supportive throughout my work and positively influenced the project with his great ideas, especially regarding the Windows port and the plugin architecture. So thanks Vilmos!

Pitonológia

  • by

Írtam egy cikket a Python programozási nyelvről ami megjelent az SZTE TTK Newtone egyetemi lap 2005 februári számában, majd később a Magyar Unix Portálra is beküldtem. A cikket közérthető, játékos stí­lusban í­rtam.

Az eredeti formátum a Newtone kérésére DOC, amit shusaku átkonvertált HTML-be és taltos PDF-be. Köszönet nekik érte!

Pitonológia

python

Ki kell ábrándí­tanom a bilológusokat, mert nem a pitonokról lesz szó. Ahelyett, hogy a hüllők világát tanulmányoznánk én inkább egy programozási nyelvből, a Pythonból szeretnék átadni néhány villanást, ezzel remélve hogy minél többen fogjátok használni és ezzel végső soron rengeteg időt fogtok megtakarí­tani amelyet mindenféle értelmesebb dolgokra fogtok használni, mint például elmentek bulizni, megsétáltatjátok a kutyát, elutaztok nyaralni, vagy esetleg vesztek néhány tucat Python könyvet, és egész hátralevő életetekben már csak Pythonban fogtok kódolni és ki sem mozdultok a barlangotokból.

Gondolkodtam rajta hogy hosszasan regélek a különböző tí­pusú nyelvek közötti alapvető szemléletbeli különbségekről, a Python helyéről köztük és hasonló mély és tanulságos dolgokról, de végülis úgy döntöttem, hogy minél emészthetőbb és játékosabb, de nem lebutított stí­lusban fogom í­rni ezt a cikket. Néhány sor bekezdés után rögtön elkezdünk kódolni és van egy olyan érzésem hogy akit kicsit is érdekel a téma az rettentően fogja élvezni.

Hogy miért? Mert a Python az a nyelv, amely valóban képessé tesz arra, hogy a problémára koncentrálj. Úgy tervezték meg, hogy ne a nyelv sajátosságain kelljen rágódnod, hanem amennyire csak lehet magától értetődő legyen a használata. Gyorsabban fogod megtanulni, mint bármely más eddigi nyelvet amit ismersz és pillanatok alatt képes leszel benne kódot í­rni. Értékelni fogod a nyelv páratlan egyszerűségét és tisztaságát.

De várjunk csak, már hallom hogy kérdezed: Ha ez egy ilyen csúcs nyelv, akkor miért nem hallottam róla vagy miért nem taní­tják? A legtöbb nyelv, amiket taní­tanak mind komoly míúttal rendelkező ipari szabványok. Ilyen a C, C++, Java, vagy majd pár év míúva a C#. Mindegyik ilyen nyelv mögött neves szabványosí­tó szervezetek és cégek állnak komoly anyagi érdekekekkel. A Python nem egy ilyen nyelv. Éppen ezért az egyetemeken nem (nagyon) taní­tják és csak akkor szerzel tudomást róla ha te magad teszel kitérőt az alternatí­v nyelvek világába. Több hasonló nyelv is van a Python súlycsoportjában, (pl. a Perl, a Tcl vagy a Ruby) de az a tapasztalatom (és sok más ember tapasztalata), hogy a Python a legjobban méretezhető és legtisztább ezek közül. Tehát ha í­rsz egy programot és az természetszerűleg egyre hosszabra nő, akkor nem fog “szétesni”, hanem átlátható marad, mert a nyelvet jól megtervezték. Persze ez azért rajtad is múlik, de a nyelven a legkevésbé.

Hogy mire tudod használni? Tulajdonképpen szinte akármire. Írhatsz benne szövegszerkesztőt, játékot, webszervert, kalkulátort vagy szinte amit csak akarsz. Rengetek különböző kiterjeszés tölthető le hozzá amelyekkel a legkülönbözőbb feladatokat oldhatod meg könnyedén. Talán egyszerűbb lenne arról í­rni hogy mire nem használhatod. Nem í­rhatsz benne például villámgyors 3D-s engine-t. Általános szabályként elmondható, hogy a Python sebességben kicsit gyenge a gyengén tí­pusos mivolta miatt (amiről később majd ejtek néhány szót). Összehasonlí­tásként dúrván elmondható, hogy ami C-ben 1 másodperc alatt lefut, az mondjuk Javában 5 másodperc és Pythonban 20. Bár ez jelentős sebességveszteségnek tűnhet, a gyakorlatban általában nem az. Ez utóbbit alátámasztja jónéhány nagyon sikeres, robosztus Python alkalmazás is, például a Plone, vagy a Mailman.

A nyelv prototipizáláshoz is kiváló. Ez azt jelenti, hogy kezdetben van valalmi elképzelésed egy feladat megoldására vonatkozóan. A fejedben vagy papiron már elkészí­tettél egy algoritmust és most eljött az idő hogy kipróbáld. Ahelyett hogy bármelyik másik nyelven valósí­tanád meg és tesztelnéd az algoritmusod, inkább í­rd meg Pythonban. Pillanatok alatt kész leszel vele és ha hibásnak bizonyul, akkor minimális erőfeszí­téssel korrigálhatod. Majd ha kész vagy és úgy működik ahogy akartad, akkor átí­rhatod egy más nyelvre az immáron helyes algoritumst, hogy gyorsabban fusson.

Pár szót illene ejtenem a nyelv történelméröl is, nem igaz? Rövid leszek, egyrészt mert engem mindig is untatott a történelem másrészt pedig a cikk gyakorlatias jellege miatt. A Pythont Guide Van Rossum hozta létre. Guido egy osztott operációs rendszeren, az Amoeba projecten kezdett el dolgozni 1986-ban az Amszterdami Egyetem berkein belül. Az Amoebának szüksége volt egy szkriptnyelvre. Guidora hárult a feladat és elég nagy szabadságott kapott a munkájában. Korábban ugyanitt már dolgozott az ABC-n, egy nyelven, amelyet úgy terveztek hogy könnyen tanulható és használható legyen a nem-programozók számára is. Az ABC-vel kapcsolatos tapasztalatait felhasználva kifejlesztett egy új nyelvet, amely az ABC minden előnyös tulajdonságát magában foglalta és a hibáit elhagyta, í­gy született meg a Python. A projecthez rengetegen csatlakoztak. Az Internet elterjedésével felkarolta a Szabad Szoftver Közösség és egyre növő népszerűségnek örvend azóta is.

Pár szó a használatáról: Ha Linux közelében vagy, könnyű a dolgod, mivel minden valamirevaló disztribúcióban jelen van az értelmező. Ha pedig Windowst használsz, akkor letöltheted a http://python.org cí­mről. Kis példáknál egyszerűen indí­tsd el az értelmezőt (csak sí­mán í­rd be hogy “python”) és máris egyenként pötyögheted bele a sorokat és a végeredményt rögtön látodhatod. Ha kezdetben kí­sérletezgetsz vele, mindenképpen próbáld ki.

Ha a programjaidat forrásfájlokban akarod tárolni (ami nagyobb programoknál persze nélkülözhetetlen), akkor nyisd meg a kedvenc szövegszerkesztődet, hozz benne létre egy fájlt .py kiterjesztéssel, mondjuk filenev.py néven és ha megvagy vele, akkor etesd meg az értelmezővel a következőképpen:

python filenev.py

Ennyi bevezető után már igazán megí­rhatjuk az első programunkat. Legyen valami rendhagyó. Mondjuk í­rjuk ki, hogy “Mizu?”:

print 'Mizu?'

Talán néhányotoknak feltűnt hogy nincs pontosvessző a sor végén, mint ahogy olyan sok nyelvben megszoktad. Ez nem a véletlen műve. Valld be, amúgy is csak zavart, nem igaz? Miután kigyönyörködtük magunkat a kimenet esztétikus mivoltában és túl vagyunk a nehéz feladat okozta mentális sokkon, találjunk ki valami komolyabbat. Például irjunk egy mesemondó programot ami megírja helyettünk a bevezetést:

dolgok = ['óceán', 'cápa', 'Bill Gates']
for dolog in dolgok:
    print 'Egyszer volt egy ' + dolog + '.'

A nem túl meglepő kimenet pedig a következőképpen fest:

Egyszer volt egy óceán.
Egyszer volt egy cápa.
Egyszer volt egy Bill Gates.

Ha a példából messzemenő követketetéseket vonnál le a Bill Gates-szel kapcsolatos véleményemről, akkor valószí­nűleg nem jársz túl messze az igazságtól. Kicsit boncolgassuk a programot hogy mindenki pontosan megértse minden apró darabját. Az elején a dolgok egy változó, amelynek rögtön értéket is adunk. Ez az érték az egyenlőségjel jobb oldalán egy tömb, amely ahogy látod három sztringet tartalmaz. A tömb elemei szögletes zárójelek között szerepelnek és vesszővel vannak elválasztva egymástól. Minden sztringet aposztrófok határolnak. Ez után egy for ciklussal végigiteráljuk a dolgok elemeit amelyek a cikluson belül egyenként dolog néven jelennek meg. Azt hiszem mostanra már rájöttél, hogy a print paranccsal í­rhatsz ki sztringeket. A + operátor az egyedi sztringek összefűzésére való. Így már biztos tiszta a kép.

Most nézzünk egy nagyon népszerű szösszenetet amit kis korunkban olyan nagy hévvel csacsogtunk:

ki = ['Az egyik', 'A másik', 'harmadik', 'A negyedik', 'Az icurka-picurka']
mitcsinal = ['elment vadászni', 'meglőtte', 'hazavitte', 'megsütötte', 'mind megette']
for i in range(5):
    print ki[i] + ' ' + mitcsinal[i] + '.'

Itt az egyetlen újdonság amit felfedezhetsz, a range függvény. Ez egyike a Python beépí­tett fügvényeinek. Ha egy paramétert adsz át neki, akkor a megadott paraméternek megfelelő nagyságú tömböt hoz létre. Így pl. a range(5) függvényhí­vás a [0, 1, 2, 3, 4] tömböt adja vissza, amelynek az elemeit a for ciklus végigjárja. A [] operátorral pedig a tömböket indexelhetjük, mint ahogy azt már megszokhattuk máshonnan.

Legutolsó példaként ugorjunk egy nagyot és hozzunk létre valami használhatót: í­rjuk meg a világ legegyszerűbb szótárprogramját. Nade hogy is működjön? Mondjuk rögtön az elindulása után várjon parancsokra. Két féle parancsot fogadjon el: lekérdezést és feltöltést. A lekérdezés értelemszerűen egy szó visszakeresése a szótárból, a feltöltés pedig egy szó megadása. Kicsit í­rjuk le pontosabban a működését. Minden feltöltést vezessen be egyenlőségjel, rögtön utána a megadandó szóval, majd a következő sorban a jelentésének a beí­rásával. Egy szó lekérdezése magának a szónak a beí­rásával legyen elvégezhető és a szótár teljes szókészletének a kií­rását egy kérdőjellel lehessel lekérdezni. Lássuk hogy is néz ki egy ilyen program Pythonban:

szavak = {}
while True:
    parancs = raw_input('> ')
    if parancs == '?':
        for szo in szavak:
            print szo + ' -> ' + szavak[szo]
    elif parancs[0] == '=':
        szo = parancs[1:]
        jelentes = raw_input(szo + ' -> ')
        szavak[szo] = jelentes
    else:
        if szavak.has_key(parancs):
            print szavak[parancs]
        else:
            print 'A szo nem talalhato a szotarban.'

Micsoda? Hogy lehagytam a kapcsos zárójeleket? Az az igazság hogy itt nincs olyan. Ha egy új blokkot kezdesz, akkor azt beljebb kell igazí­tanod, nem pedig kapcsos zárójelekkel határolnod. Bár ez a szintaxis kezdetben talán zavarni fog, csak hozzászoksz majd. A kapcsos zárójelek hiányának kellemes mellékhatása az olvashatóbb kód amelyet idővel biztos te is értékelni fogsz. Hely hiányában megpróbálom a lehető legtömörebben és legérthetőbben elmagyarázni a fenti kódot. Egy furcsa értékadással kezdődik. Ez egy üres asszociatí­v tömböt hoz létre szavak néven. Gyakorlatilag ez ebben a példában sztringeket képez le sztringekre, tehát például az egyes szavak angol megfelelőjét magyarra. A későbbi sorokból könnyen ki tudod olvasni a használatát. Ez után egy végtelen ciklus következik, ami ugyebár itt nem túl elegáns. Azért ne ijedj meg, ilyenkor a Control-D -vel mindig ki tudsz lépni. Ennek a ciklusnak minden egyes ismétlődésében egy-egy parancsot fogadunk. A raw_input függvénnyel bekérünk a felhasználótól egy sztringet. A raw_input argumentuma a bevitelkor megjelení­tendő szöveg. Az if-elif-else szerkezet nem meglepő módon a Python feltételes vezérlési szerkezete. Az if ágban ha kérdőjelet kapunk, akkor az összes szót kiirjuk. Az elif ágban az új szó feltöltését kezeljük le. Itt kihámozzuk a szót a parancsból az első karakter, az egyenlőségjel lehagyásával. A parancs[1:] kifejezésben a szeletelő operátor használaba kaphatsz betekintést, ami eldobja a sztring első karakterét. Az else ágban talán a has_key szó lehet homályos néhányotoknak. A szavak.has_key egy metódushí­vás. Ugyebár a szavak egy asszociatí­v tömb. Minden asszociatí­v tömb rendelkezik egy has_key metódussal, amely megmondja, hogy a argumentuma (a keresett szó) eleme -e az asszociatí­v tömbnek. Ettől függően í­rjuk ki a keresett szót vagy a hibaüzenetet.

Csak hogy lássuk élőben is a szótárunkat, itt egy próba a felhasználó által beí­rt részt kövér betűtí­pussal kiemelve:

> =apple
apple -> alma
> =honey
honey -> méz
> =sin
sin -> bűn
> ?
honey -> méz
apple -> alma
sin -> bűn
> honey
méz

Ennyi erre a hónapra. A Python legyen veled, meg a jó szerencse és ami még jól esik. Minden cikkel kapcsolatos kritikát vagy bármi mást boldogan fogadok a laci @ monda.hu levélcí­memre vagy ha gondolod a honlapomat is megnézheted a http://monda.hu webcí­men.

UC Windows Port

  • by

I’ve demoed UC to Vilmos Bilicki, who is my mentor in relation with my master thesis project (which is UC). He was very enthusiastic and told me that he’d use UC if it ran on Windows. I was thinking about porting UC to Windows even before, but he was giving me a further push, so I did a try this time.

I had a talk with Francisco T. Martinez a la Paco on #Mono. He directed me to his expermiental Windows Mono Installer which incorporates the Gnome bindings, not just Gtk# as the official installer. Using his stuff it was easy to port UC to Windows. Well I’ve not entirely ported it, just to make the GUI work, but it’s nice to see how fine it looks on Windows:

ultimate-commander-gui-1

He told me that the extra bindings of his expermental installer will be a part of the official installer soon. Very nice!

I’ll try to maintain UC in the future respecting the Windows port. I think it worths the additional maintenance burden which is not too heavy with Mono.