More...

Time is an illusion. Compile time - doubly so.

Добре дошли в abs!


Nixie clock

Ако следите моя блог, сигурно сте забелязали, че обичам да пиша за разни електронни джаджи, с прогреса от чертожната дъска до физическата им реализация. Това е поредната история, в която този път разглеждаме реален продукт на пазара, а този пост е behind-the-scenes от създаването му до ден днешен. Ами - да се потопим!

Идеята

Всичко тръгна от една тема във форумите на HardwareBG. Още преди това бях голям фен на никси лампите:

picture

Тези индикатори са се произвеждали в огромни количества през 60те и 70те години на миналия век, но LED-овете са ги направили анахронизъм малко по-късно. В тази статия ще разберете отчасти защо.

Решен да си направя собствен Nixie часовник намерих съмишленици, отидох до NN electronics и си накупих 4 лампи Mullard ZM1080.

Първи тестове

На пръв поглед никси лампата е една стъклена ампула, в която има десетина голи проводника и видът на светеща такава е нещо средно между лампа с нажежаема жичка и неонов надпис. Българското им название - газоразрядни индикатори - подсказва същността им: ампулата е с изтеглен въздух и има остатъчно налягане на неон (и други помощни газове), но напрежението между полюсите е твърде ниско за луминесцентно излъчване и се получава газов (тлеещ) разряд, който обхваща непосредствената околност на полюса с отрицателен потенциал[1] (в случая са 10 полюса: оголени проводници, оформени като цифрички). Макар и да прилича на нажежаема жичка, това е само измамно - газоразрядните индикатори не греят изобщо.

Освен катодите, в ампулата има само един анод (положително заредена решетка, която трябва да се държи под високо напрежение от 160-180 волта над потенциала на катодите). За да покажете конкретна цифра на никси лампата е достатъчно да свържете генератор на високо напрежение към анода и някой от катодите към земя. Ако сте нацелили правилното напрежение - получавате светеща цифра:

picture

Отлично!


На практика се налага токът през лампата да се ограничи, иначе тя може да изгори. С тази цел са поставени 10К резисторите, които ще видите в схемите по-долу. Ако съберете 6 лампи на едно място и ги разделите по двойки, можете да си направите цифров часовник с газоразрядни индикатори.

Необходимостта от високо напрежение е досадно[2], но преодолимо препятствие. След като намерих в интернет схема за високоволтово захранване с 555, MOSFET и индуктор, се заех да мисля как да се направи мултиплексирането на схемата.

Мултиплексиране

Какво значи мултиплексиране? (про-тата можете да пропуснете следващите обяснения)
Ако два компютъра трябва да си комуникират и поради някаква причина могат да използват само светлинна сигнализация, то няма проблем - единият ще има светоизлъчвател, напр. LED, а другият - светодетектор, напр. фотодиод. И с подходящ сериен интерфейс / мигане с LED-а, всичко заспива. Но ако компютър трябва да си говори с човек... неее, един LED далеч няма да ви е достатъчен. Налагат се десетки или стотици светещи елементи, в най-различни форми и подредби... вие самите най-вероятно четете този текст от такава подредба с поне половин милион пиксела.

А когато компютърен процесор трябва да командва комплекс светлинни елементи, неизбежно голямата им бройка се превръща в проблем. Да илюстрираме с 6 никси лампи:

Image

Тук имаме микроконтролер, който разполага с 60 контролируеми "заземителни" пинове (open drain изходи). Така може да светнем произволна цифра на произволна лампа.

Малкият проблем е, че трябва да ползваме микроконтролер с поне 60 крака, и да имаме 60 писти, което ще е криво за опроводяване. По-лошото е, че такъв микроконтролер няма - повечето ползват нисковолтови полупроводникови процеси и рядко могат да издържат на напрежения над 20V, а често дори 5.5V е проблем. А нас ни трябва с 160V... Ако вържете нормален микроконтролер тук, той просто ще изпуши моментално.

Ето защо се налага да използваме високоволтови транзистори (например BS108), командвани от TTL изходи на микроконтролера:

Image

Още тук виждате колко "космата" става схемата: броят писти нарасна трикратно и само транзисторите биха изисквали 180 спойки. С микроконтролера и лампите ще са над 300 спойки. Запояването на такава платка би било безобразно досадна и пипкава работа.

Следва да забележим, че схемата ни дава и страхотна свобода какво да светнем, като повечето избори биха били глупави. Например, бихме могли да светнем едновременно катоди "2" и "6" в една и съща лампа, което ще изглежда просто... странно. За всяка лампа следва да можем да покажем някоя от цифрите 0-9 или нищо. 11те опции могат да се кодират в 4 бита, а декодирането да се прави чрез специализирана интегрална схема, например 74141:

Image

74141 е една наистина възхитително полезна за целите схема[3]: 4те входа (маркирани с A, B, C и D) приемат двоично число от 0 до 15. Всеки от 10те (Q0-Q9) изхода е реализиран вътре в кристала чрез високоволтов транзистор с отворен колектор. Ако изберете число 0..9 (например подадете 5V на вход C и 0V на A, B и D), дешифраторът ще види числото "4" и ще свърже Q4 със земя. Числата 10-15 се дешифрират като празни - лампата не свети.

С използване на 6 броя 74141 (или съветските им аналози К155ИД1) броят спойки намаля на 198 общо. Контролерът вече изисква само 24 I/O пина и нещата изглеждат доста по-добре. Все още не сме мултиплексирали нищо, обаче.

Нека разделим лампите в две групи по 3: четни и нечетни. Ще сложим контролиращ елемент на анодите, който да командва коя група е активна:

Image

Ако ключът S1 допусне високото напрежение само на нечетната група, то ние имаме пълен контрол над всяка от лампите 1, 3 и 5: дешифраторите ще командват катодите на лампи 1+2, 3+4 и 5+6 респективно, но четните няма да светят, тъй като нямат напрежение на анодите. Ако искаме да покажем "18:33:40" на дисплея, ще подадем 1, 3 и 4 на дешифраторите и реално потребителят ще вижда "1_:3_:4_".
След което превключваме ключа S1 към четната група и едновременно подаваме на дешифраторите респективно 8, 3 и 0: на дисплея ще се вижда "_8:_3:_0":



Както виждате, ако сменяме между двете показания достатъчно бързо, човек не да забелязва трептенето и ще му се струва, че вижда "18:33:40", но с двойно по-ниска яркост.

Всъщност, можем да стигнем и по-далеч от мултиплексиране на две групи. 6 се дели и на 3:

Image

А можем да направим и пълно мултиплексиране:

Image

Какви са недостатъците на мултиплексирането на повече групи? Първият е, че яркостта намалява: при пълно мултиплексиране тя е едва 1/6 от номиналната. Разбира се, можем да компенсираме с повишаване на напрежението към лампите, но това ги поставя в по-натоварен режим[4].
Вторият недостатък е, че опростявайки командването "долу" (при катодите), сложността се качва "горе" (при анодите). Ключът S1 изисква транзистори (няма удобна интегрална схема като 74141 за тази цел), по два транзистора за група и в даден момент каквото спестим отдолу, се качва отгоре. Вижте следната сравнителна таблица:

Image

Опциите 2x3 и 3x2 изглеждаха като оптимални, така че сковах бърз прототип, за да проверя колко % duty cycle изглежда прилично като яркост в нормални условия ако захранваме лампите със 160 волта. Ето как изглеждаше:

picture

С потенциометъра избирам на колко процента да ШИМ-ирам лампата


picture

Топлото зарево на индикаторната технология от 60те (а на заден фон са 5,760,001 екземпляра на индикаторната технология от 00те - credits to espr1t)


И така, в крайна сметка предпочетох 2х3 схемата: 50% максимална яркост и общо три дешифратора.

Развой

С това бях готов за прехвърлянето на високоволтовата схема и командващата логика на печатна платка[5][6].

Това беше първата ревизия (v1.00):

picture

Първи тест на мултиплексирането


Понеже исках платките да са компактни, използвах стария подход от battery level meter-а да строя двуетажна сглобка. Долу е високоволтовата схема, микроконтролерът, бутоните и часовникарският чип. Горе са лампите, дешифраторите и превключвателят на четни/нечетни лампи (S1).

Тук се сблъсках и с първия проблем при намирането на лампи: имах само 4 бр. За часовник трябват 6, но тук се намеси Private от форумите на HardwareBG , който за късмет имаше точно същия тип и на практика ми подари 2 бройки, за да се завърши комплектът:

picture

v1.00 с лампите


Познайте чии лампи са на Private :)

Насетне v1.00 беше изоставена, тъй като определено не бях предвидил достатъчно място за отстояние между двойките лампи. Отделно си накупих и от тези руснаци:

picture

ИН-12


picture

За сравнение...


Проблемът тук беше, че при тях изводите на лампата са отдолу, а трябва да се гледат "отгоре". Т.е. при тях трябваше платката, на която са запоени, да стои изправена вертикално нагоре. Решението беше да се изведат на малки слоткетни платки, по този начин:

picture

В основната платка има дупки, както за ZM1080, така и за 12-пинов конектор към слоткетите:

picture

picture

Я да видим върви ли:

picture

picture

... и с 6 лампи


Тук възникваше въпросът по какъв начин да се направят разделителните точки между цифрите. Макар и да съществуват специални лампи конкретно с тази цел, успях да си намеря едни подходящи ампули - МТХ-90. Те въобще не са правени с цел илюминация (полупроводников елемент са), но светеха по същия начин и бяха подходящия размер, така че ги нагодих:

picture

picture

Отпред


През това време платките минаха през 2 ревизии: в 1.01 поправих масата бъгове, неправилни размери на компоненти, грешни пинаути и др., а в 1.02 уголемих платките до показания размер и добавих възможността за двата вида лампи на горната платка. Във версия 1.03 вече бяха само козметични поправки.

Фърмуер

През това време по долната платка също кипеше работа:



Първи прототипи

И така функционалността на часовника беше готова.
Сега следваше да го обезопася. Макар и двете платки да си седяха културно една върху друга, постановката е крехка и дава достъп до множество оголени проводници под високо напрежение, което не трябва да е така. Вместо да търся подходяща кутийка и после да се чудя как да я дупча, изолирането стана с подходящо нарязани плексигласи:

picture

Сглобка с Z573M лампи


В началото мислех крепежите между 4те повърхности да са метални дистанционери, като горепоказните. Проблемът е, че лъскавото метално покритие не се вписваше в цветовата схема на останалия часовник, затова пробвах да оксидирам с киселина, за да почернеят. Обаче полученият ефект (показан горе) не беше особено добър, тъй като си беше автентично ръждясване и не докарваше плътно черно:

picture

Оксидация


Втората идея беше да прекарам една шпилка от горе до долу и да ползвам втулки върху нея за отстоянията. Тук пък трябваха твърде специфични по дължини втулки и единственият вносител, който разполагаше с необходимите размери, имаше само бели:

picture

Шпилки и втулки


Това вършеше работа, но все пак ми се искаше да са черни и прибегнах до ebay. Там можете да си купите 5 метра черна найлонова тръбичка с точно подходящия диаметър. След това тръбичката се нарязва до необходимите размери и втулките са готови. Но така фабрикуваните втулки имат един издайнически елемент - с надписи са и не са съвсем прави. И докато надписът пада лесно със спирт, то закривяването няма махане, колкото и да се старае човек. Опитайте се да го откриете тук:

picture

Рязането на шпилките и втулките беше един досаден и изморителен процес:



След като бях направил по един часовник с двата вида лампи и изглеждаше да работи добре, беше време да го обърна до комплект за запояване, понеже подозирах, че би имало интерес.

Серийно производство

За целта първо следваше да събера по-сериозни количества лампи и дешифратори, понеже вече не се произвеждат и се намират трудно (NOS - new old stock). Отделно цените им варират много. С комбинация от търсене по форуми, оферти в онлайн магазини, преслушване на обявите в български и руски сайтове, и подобни, по някое време бях събрал 100-на лампи в най-различни видове и състояние:

picture

Част от колекцията...


picture

Тази партида ИН-12 бяха от м. Март 1984...


Намирането на дешифратори беше дори по-трудно, за щастие намерих един пловдивчанин, който продава такива в големи количества и неговите са първа употреба:

picture

Понеже и лампите, и дешифраторите не си знаят годините, следваше да измисля удобен начин да ги тествам. За лампите използвах високоволтовата схема от първите тестове, с нагодени ограничаващи резистори, един кабел с алигаторна щипка (към анода) и една мултицетна пробка (към катодите). Така лесно се "просвирва" лампата дали работи.
За дешифраторите създадох следното нещенце:

picture
Съвсем проста схемичка, която се захранва през бутона, и бързо преслушва дали всички изходи на дешифратора работят.

Статистически повечето закупени NOS компоненти си работеха. Повредените лампи обикновено не работеха изцяло, не съм срещал частично дефектни. При дешифраторите е обратното, обикновено на проблемните им беше изгорял само един изход, останалите работеха. Но в резултат пак бяха за кофата.

Голямото количество елементи от всякакъв произход ме накара да ги подредя и именувам в класьори:

picture
picture

Следващата стъпка бяха опаковките. Комплектът за запояване не отнема много място и след кратко ровене из вехториите вкъщи намерих една подходяща по размер кутия от видеокарта:

picture

Снех размерите ѝ, след това отидох при един производител на кашони и опаковки, където потърсихме щанца за кутии с подобни размери. По принцип могат да ви изработят кутии с произволни размери, но първоначалната цена при такава специална поръчка е доста солена и затова просто ползвах щанцата на техен клиент, комуто са трябвали картонени кутии с доста близки до видеокартата размери. Картонът се реже там и ви го връчват вид на един топ листи (примерно 50-100 броя):

picture

които после трябва да си сгънете сами, за да образувате кутийки. Ето как изглежда една такава кутийка със съдържанието ѝ:

picture

Опаковането на елементите не беше особено трудно, предвид че само лампите са чупливи, съответно само те искат индивидуална грижа с картон или аерофолио. За резисторчета, транзисторчета и подобни вършат работа и обикновени zip-lock пликчета[9]. Последното беше да измисля как да разполагам интегралните схеми и цоклите. По принцип доставените от магазина, ако не са в тръба, ги слагат на нещо като твърд дунапрен или стиропор. Оказа се, че в Динакорд продават подобен относително твърд дунапрен (със съвсем друга цел - там е за звукоизолация), който е евтин и го продават на квадратен метър. После с макетното ножче се реже до необходимите размери.

Впоследствие се научих да "редя тетриса" все по-добре и да прахосвам все по-малки количества от въпросния дунапрен:

picture

Това е моят шедьовър :)


И така произведох първата голяма партида:

picture

Ето как изглеждаха надписите:

picture

С натрупването на много бройки човек започва да забравя коя каква е и къде е отишла. С тази цел, пък и за да може да се следят и другите продукти, разработих вътрешнофирмено софтуерче за проследяване на отделните бройки, което да може да генерира PDF-и с баркодове и приемо-предавателни протоколи:

Image

Разбира се, какво е един комплект за запояване без подробна и добре илюстрирана документация? След дълго писане и много корекции от страна на Алекс, указанията бяха готови.

Следващата стъпка беше да се направи уебсайт и промо-материали за обявяването на продукта. Досега не се бях занимавал с продуктова фотография, но сглобих един лайтбокс от подръчни материали и вече разполагах с прекрасен бял фон:

picture

picture

С малко напудряне


Постановката изглеждаше така:

picture

picture

... какво ли няма да направи човек, за да кадрира правилно нещата...


Съществен елемент тук е осветлението. Лампите са със студено бяла светлина - 6500К. По принцип цялото ми осветление вкъщи е с топъл спектър, 2700К, обаче като вкарате корекцията на бялото при осветление 2700К, цветът на светещите цифри става неприятно лилав и студен.

След което се загледах в разни шукарийки как да използвам така направените висококачествени снимки за full-screen презентация на продукта (не ще и дума, външният вид е водещ тук). Чрез supersized сглобих една минимална страничка в този стил, която да демонстрира продукта.

Опирахме вече до дистрибуция и продажби. Тук се включиха моите познати от Роботев, с които уговорихме цени и условия, занесох им една партида и те вкараха продукта в каталога си. И оставаше само да чакаме първите продажби.

За подпомагане на продажбите направих две неща - първото беше да изхарча кредита си за Google AdWords, който ми бяха подарили преди 6 години.
Макар да е тривиално да се направи Google ads кампания, уцелването на правилната аудитория е предизвикателство. Ако keyword-ите са строго специфичните (nixie clock, газоразрядни индикатори, никси часовник), посетителите на ден са много малко. Google ми предлагаше да добавя keyword-а "часовник", сам по себе си. Послушах ги, но се оказа лошо предложение - така пък обирах от огромния трафик от хора, които търсеха ръчен часовник. А като предлагаш никси часовник на онзи, който е отворил да търси за Rolex-и и Fossil-и... те просто няма да цъкат. Импресиите се качиха много, но click-through rate-ът падна значително. Накрая зарязах кампанията, беше ясно, че не помага.

Другото нещо, което помогна доста, беше да подарим един сглобен часовник на Роботев. Помните ли онези ZM1080 лампи от първия прототип? Е, отидоха тук:

picture

Сглобени комплекти

Макар и болшинството ни клиенти предпочитаха да си запояват часовниците сами, както се оказа, имаше интерес и към директно сглобени часовници. За тях отидох пак до фирмата с опаковките за да си подбера подходящ размер кутийки:

picture

Фирмената им котка ми даваше препоръки


Белият цвят на кутиите даваше възможност надписите да са малко по-джиджани:

picture
picture

За поддръжка на продукта (по предложение на Роботев) сложих форум. Освен това продължавах да експериментирам с нови елементи и идеи. Ето един часовник, сглобен специално за кръглата годишнина на приятел, като тук за разделителни точки използвам ИНС-1 индикатори:

picture

А ето един, на който тествах алтернативна цветова гама:

picture

picture

Това не е часовник - това е decimal-to-binary конвертор :)



Изводи

Какво научих:


За в бъдеще остава:

  1. Да намеря начин за износ и извън България, тъй като тук пазарът е малък, а продуктът е зверски специфичен. Между другото, ако някой желае да се занимава с продажби на комплектите по ebay - да ми пише :);
  2. Да добавя PIR сензор, за да може събуждането от скрийнсейвъра да става и при движение, не само при шум;
  3. Да прехвърля кода върху AVR, понеже се оказва, че това е платформата за хоби програмиране и повече хора имат познания (и програматори) за целта;
  4. Да добавя опция за автоматично сверяване на часа през GPS;
  5. и още много други...


Като всяко друго нещо, и този проект може винаги да му се направи или добави по още нещо. Но този пост вече стана километричен, така че спирам до тук, а на читателите, стигнали до края - поздравления :) И хиляди благодарности на всички хора (няма да изброявам, списъкът е страшно дълъг, те знаят кои са), които помогнаха тази моя мечта да стане реалност!


Публикувано в категория Hardware -- clock 11 Dec 2016, 06:43, 3 коментара -- English View in English


thought

TRRS

Както е добре известно, технологиите колкото помагат, почти толкова и пречат и днешният ми rant е за един такъв пример.

Преди време, компютрите и лаптопите имаха по два аудио порта: един - изход - за слушалки и един - вход - за микрофон. Трудно може да се направи по-просто от това, но най-важното е, че всичко работеше:

picture

Е, някъде от 4 години насам постепенно се налага модата портът да е заменен с един 4-пинов (TRRS):

picture

По каква причина производителите на лаптопи са решили, че това е добра идея - не знам, но модата тръгва от смартфоните, където мястото наистина е кът и трикът с комбинирането там е доста основателен[1]. В резултат на обединяването на двата порта в едно, обаче, се появяват теми като тази или тази, където хората се жалват, че не могат да ползват съществуващите си микрофони. Проблемът е, че комбо портът работи за слушалки, или за слушалки с микрофон (и то само ако са с правилното опроводяване при жака), но не и за "гол" микрофон, понеже неговото опроводяване е напълно несъвместимо.
Стандартното решение на проблема по форумите носи характерния дебилен оттенък на 21ви век: купете си USB микрофон! Работи чудесно, няма грижи, ала бала.

Хубаво, само дето моето устройство, което искам да вържа, не е микрофон, а е лично измайсторен light-to-sound converter, с който си преточвам данните от Battery level meter-а. От него идва три-пинов жак, но с това свършват приликите.

Разбира се, човек може да си купи сплитер като този:

picture

Аз имах необходимите жакове и си направих мой сплитер, но той не работеше. Както се оказа, лаптопът иска да има вързани слушалки, за да се усети, че има нещо в порта.

Това ми дойде в повече, и воден от обсесивно разстройство си измислих следната схемичка:
picture
С 15-омовите резистори симулирам слушалките :)

Нещото се събираше на съвсем миниатюрна платчица:
picture

Тук идва кабела с 4-пиновия жак. От другата страна на платката са резисторите и женския 3-пинов куплунг. В 3-пиновия куплунг си вкарвате кабела от микрофона. 4-пиновия се мушка в лаптопа, който си мисли, че към него е закачено комбо от слушалки + микрофон.

Понеже исках целия преходник да е малко по-защитен и по-безопасен, му измайсторих кутийка. Всъщност идеята на горната снимка е единствено да мога да меря точни разстояния, след което последва малко CAD-ене на Blender:

picture
picture

И след което си го разпечатах на 3D принтер и напъхах платчицата вътре:

picture
picture

И понеже тея тънки кабелчета плачат да се прекъснат с времето, залях цялото нещо с горещ силикон:

picture

С което адаптерът беше готов - микрофонният вход на лаптопа вече не се правеше на интересен. А дали имаше смисъл да си губя цялото това време да майсторя джаджата - сигурно не, но бях бесен на инженерите от Lenovo и тяхната късогледа тъпотия. А на зла круша се полага зъл прът!


Публикувано в категория Hardware -- clock 23 Nov 2016, 06:37, 0 коментара -- English View in English


thought

Поговорки

Българските поговорки са базирани на дейности, инструменти и идиоми от бита на хората преди много време. За човек от 21ви век, буквалното значение на поговорките често се губи, тъй като те очакват да разбираш от жътва, животновъдство, тъчене, носене на вода, вятърни мелници и всякакви такива. Ето защо тук съм анотирал 30 поговорки със компютърждийски/програмистски пример за всяка:

Който гони два заека - и двата изпуща
- Multithreaded програмите ускоряват нещата, но не подценявайте цената на task switch-овете.


Който копае гроб другиму - сам пада в него
- Не бързайте да слагате copy protection в програмите си - те често водят до дълбоки и ужасни за откриване бъгове.


Петима Петко не чакат
- Когато разпределяте задача на много машини, слагайте таймаут - случва се машините да се увисват


Сговорна дружина планина повдига
- Най-краткото възможно описание на MapReduce


На харизан кон зъбите не се гледат
- Е, сега, Open source е - к'во му търсиш кусури!


Ако е гарга, да е рошава!
- Ако ще пренаписваш част от програмата на C, помисли направо за асемблер/интринсици/GPU


Бабини деветини
- Plan9 или SysV (по избор)


Времето е пари
- Welcome to AWS


Пет пъти мери, един път режи
- Внимавайте за off-by-one грешки


Евтин на брашното, скъп на триците
- Описва бизнес модела на лоу-кост компаниите като WizzAir


За всеки влак си има пътници
- Няма значение колко забутан е софтуера, който си инсталирал, за него непременно може да се намери crack
или
- Ако нещо може да бъде написано на javascript, то ще бъде написано на javascript


Залудо работи, залудо не стой
- Илюстрация на този принцип има в pipeline manager-а на Pentium 4, още известен като "replay system"


И вълкът сит, и агнето цяло
- Ползването на #ifdef за постигане на крос-платформеност


Казана дума, хвърлен камък
- Когато нещо се запише, то е почти перманентно. Справка - как работи изтриването на файл във FAT32. Също - Data retention policy-то на Google и Facebook.


Капка по капка - вир става
- По един ред да се записва в лог файла на час, пак си трябва да имате log rotate.


Който има крава пие мляко
- Можеш да пишеш AVX512 код на Sandy Bridge и даже да го провериш работи ли. Но за да видиш как е като performance си трябва Skylake Xeon.


Кокошка, дето най-много кудкудяка, най-малко снася
- В performance review-тата на края на годината те оценяват на количество и качество commit-нат код, а не на брой написани e-mail-и.


Крушата не пада по-далеч от дървото
- Не очаквай от език, потомък на LISP, да си е спестил скобите.


Лозето не ще молитва, а мотика
- Пробвай се да напишеш нещо без да имаш library или language reference-а. Там колкото и книги по design patterns да си чел, няма да помогнат.


На гол тумбак чифте пищови
- Представи си важна сървърна машина, обаче с единичен и некриптиран харддиск, на който SMART-а е взел да му се обажда. И в този момент да му забодеш не един, а два UPS-а!


Пилците се броят наесен
- Изчакайте да свърши trial периода, преди да се радвате колко много свежи потребители е привлякла новата версия


Отидеш ли в Рим, прави като римляните
- Не се прави на умен, копи-пействай от примерите в съответния developer network и адаптирай решенията от application note-овете


С питане и до Цариград се стига
- Домашният ти рутер вероятно не знае по какъв път се стига до 92.242.132.16. Но следващият рутер може и да знае. Демек - върви по default route-а, докато не попаднеш в default-free зона.


Тъпанът е голям, но е празен
- Не гледайте колко голямо е захранването или колко вата пише на него. Вижте колко тежи.


Хубавите ябълки свинете ги ядат
- Най-клокваемите и нисковолтови процесори ги подбират специално от поточната линия за да ги сложат в MacBook Air.


Шушу-мушу къща разваля
- Затова във фирмите (къщите) са измислили NDA-тата.


Клин клина избива
- Фиксвайки бъг, общият брой на бъговете в програмата остава най-малко същият.


Като се прекатури колата, пътищата са много
- Чуството, когато на post-mortem-а се питаш "е как пък не се бяхме сетили още тогава?!?"


Не питай старило, а патило
- Senior developer-ът не винаги е най-удачния човек за code review


Бързата работа – срам за майстора
- Версия 1.0 трябва да е бавна, иначе си затриваш онези $50 на клиент, които можеш да вземеш с пускането на Service Pack, в който просто са включени оптимизациите.


Ум царува, ум робува, ум патки пасе
- Във всяка съвременна кола има поне 10 процесора. Един от тях командва възпламеняването на горивото в двигателя, друг следи да не се пързалят гумите, трети се занимава единствено да следи кога и как да движи чистачките.

---
С допълнения и корекции от espr1t.


Публикувано в категория Забава -- clock 16 Sep 2016, 10:44, 0 коментара


thought

100,000

Наскоро, на 07.07.2016, сайтът с батерийните тестове е отчел 100 000-ният си посетител! Огромни благодарности на всички, честно казано въобще не очаквах толкова да се развие този "джобен" проект :)

Около същото време качих тестовете на още 6 модела батерии, както и малко вторични наблюдения върху Raymax AAA. Новите тествани модели са:

AA:

AAA:



Другите новини: блогът си има леко променена визия (R.I.P., Verdana) и малко нови защити срещу спамботове :)


Публикувано в категория Интересно -- clock 8 Jul 2016, 17:21, 2 коментара -- English View in English


thought

Хакер

Една от малките тийнейджърски победи, която постигнах (след дълго убеждаване), беше да накарам родителите да ми купят книгата Наръчник на Хакера. Тогава идеята да стана "хакер" се беше загнездила в главата ми, и то най-вече защото имахме съвсем нагледен пример за такъв в училище (в комплект с тъмни очила, оп статус в повечето местни IRC канали, неразбираем технически диалект и 55.6к модем, с което беше сред единиците тогава в страната). Сега, гледайки в ретроспектива, книгата не беше особено добра - изпълнена предимно със страници и страници неясен C код, некомпилируеми на никой съвременен Линукс, и често писани за експлоити, които светът беше пачнал и забравил още преди мастилото да е изсъхнало. Но ако нещо научих, беше че има още много, ама мноооого да изчета, преди да мога да се нарека хакер. И че има няколко дефиниции за това що е хакер, а хората често ги бъркат.

Длъжен съм да предупредя: този пост съдържа известна доза самохвалство. Оценявам я на около 15 милиНакова, като 1 Наков е нарцисизмът, струящ от едно типично интервю със създателя на СофтУни. Ако имате непоносимост ... както и да е, предупредени сте :)

Та на въпроса: какво е хакер? В най-широката дефиниция, това е любопитен техничар. Човек с огромен и широкоспектърен опит в техническите области - компютри, мрежови системи, хардуер, механика, физика... И винаги жаден да научи повече. Хакерът обожава да човърка чуждите творения и да се учи от тях. Хакерът не се притеснява да разглоби новия си осцилоскоп, за който вчера е дал 3000 лева, за да види как е направен. Хакерът проучва варианти да ползва готови продукти по начини, които създателите им не са очаквали. Да ползва GMail като файлова система. Да подкара Doom на iPod. Да монтира уебкамерка над входната си врата и да получава известия ако съмнителни субекти се суетят пред вратата му. Хакерът може да погледне голяма, непозната за него система, да забележи смътно познати признаци и да получи поне обща представа как работи нещото, за съвсем кратко време. А често и да види какви са слабите му точки.

Разбира се, в тази дефиниция попадат и хората, които заобикалят защитите на компютърните системи. И така откриват начини да ви откраднат паролите, да ви инфектират компютъра или да ви шпионират - понеже някой е спал, докато е писал въпросният сайт или OS. "Добрите" хакери настояват този подвид да се наричат кракери - за да е ясно, че те нарочно чупят компютърни системи за лична изгода. Или да се въвеждат термини като добър/лош хакер ("бели шапки"/"черни шапки" - на английски white hat/black hat). Макар че това деление е малко фалшиво, тъй като надали има хакер, който да не е поне малко "сив". Освен това, повечето хаквания не разчитат непременно на технически познания - успехът на имейл вируса "I Love You" се дължеше основно на факта, че голямата част от хората в интернет са с нещастен личен живот.

Пиша тази статия за да дам контрапункт на всичките неправилни примери за хакери, които можете да видите другаде. Холивуд е пословично зле в това отношение - филм след филм излизат, от касови по-касови, но очевидно не искат да представят хакерите в истинската им светлина - "че работят основно нощем" е горе-долу единственото вярно нещо там. Ще демонстрирам с нагледен пример как мисли, преценя, и работи един хакер.

----------

Задачата беше да се купи безжичен звънец за една леко глуха баба. Знаете за тези устройства, където кутийка с копче на нея стои на външната врата, а кутийка с говорителче и лампички стои в апартамента и издава звуци при повикване? Е, особеното в задачата беше да се вземе такъв модел с две вътрешни устройства - по едно за всяка стая.

След кратко разглеждане на предложенията в Бриколаж, хакерът откри, че "такова животно нема" - всички звънци бяха само с по един предавател и приемник. За сметка на това, кутижките гъмжаха с детайли колко много мелодийки поддържал продуктът и как прецизно можела да се настрои силата на звука.

Хакерът си мисли: колко типично за отдел маркетинг! Разбира се, в рекламите ще акцентират на маловажните детайли като мелодийки и цветове. Никога няма да им хрумне да споделят, ей така, за разнообразие - на каква честота оперират, какво шумозащитено кодиране ползват, през колко стени би следвало да се чуват. Е, един от тях дава информация за разстояние, но, естествено, без да споменава при какви условия...

Хакерът помъкна две бройки от най-простия модел и помоли на касата да отвори опаковките:
Image

Забеляза, че и на предавателите, и на приемниците, от задната страна има номерче и нещо като баркод. Номерчето съвпадаше за двойката предавател/приемник, но се различаваше между бройките. Очевидно не беше сериен номер. Беше спомената и честотата, еднаква и за двете бройки.
Image

Хакерът си мисли: щом работят на еднаква честота, значи ползват някакъв специфичен код, за да може приемника да разпознава само "своя" предавател. Иначе какво би станало ако двама човека в блока си купят един и същи модел? Няма да звънят и двамата при повикване я...

Тук хакерът можеше само да се надява, че ще успее да "предоговори" единия приемник да възприеме кода на "чуждия" предавател. Ако трябва да сме честни, хакерът не беше напълно сигурен дали ще се справи, но интуицията му подсказваше да опита.

... все пак взех най-евтиния модел на пазара. Или трансмитерите, или ресийвърите трябва да са конфигурируеми; и конфигурацията ще е с нещо евтино, надали ще хабят flash чип за това. Най-вероятно вътре ще намеря DIP-switch или конфигурируемо опроводяване. Но определено нещо просто и евтино...

При завръщането вкъщи, хакерът откри, че в приемниците наистина има нещо, приличащо на конфигурация - редичка прерязани писти, част от които бяха съединени с припой:
Image

и, разбира се, именно позициите на припоя се различаваха между двете бройки:
Image

Хакерът си мисли: Тук има някакви числа, плюсове и минуси. Сигурно по някакъв начин съответстват на баркодовете на трансмитерите. Но за целите на задачата не е необходимо да разбирам каква е схемата - достатъчно е да изравня спойките между двата приемника.

Image

5 минути по-късно, двата приемника звучаха в синхрон, а през две стени разстояние хакерът стоеше с огромна, доволна усмивка.

----------

Та - следващият път, когато искате да обясните някому що е то хакер - пратете го тук. Моля ви. Писнало ми е от небръснати очилати типове, работещи на несъществуващи, футуристични интерфейси, и задължително хакващи огромни системи за милиарди долари. Справедливото обрисуване на хакерите трябва да възтържествува!


Публикувано в категория Технологии -- clock 1 Jun 2016, 16:20, 1 коментар -- English View in English


thought

Батерийни тестове (2)

Последния месец съм със счупена ръка и се възползвах от времето да допълня (макар и да става зверски бавно) изостаналите в backlog-а тестове - най-вече на презареждаеми батерии, общо 29 модела:

Непрезареждаеми


ААА:
Raymax

9V:
Aerocell

Презареждаеми


АА:


Благодарности на всички, които ги дадоха за тестове!

ААА:



8.4V:



18650:


Публикувано в категория Интересно -- clock 16 May 2015, 00:15, 0 коментара -- English View in English

По-стари статии >>

Language:

bgБългарски
enEnglish


Категории:

Мета
Hardware
Технологии
Забава
Open source
Интересно
Наляво-надясно
Простотии
Програмиране
Музика
Картинки
Фотография
Всички


Архив:

+ 2008 (21)
Март '08 (3)
Април '08 (5)
Май '08 (5)
Юли '08 (2)
Септември '08 (1)
Октомври '08 (2)
Декември '08 (3)
+ 2009 (15)
Януари '09 (2)
Февруари '09 (1)
Март '09 (1)
Юни '09 (1)
Юли '09 (1)
Август '09 (3)
Септември '09 (1)
Октомври '09 (2)
Ноември '09 (1)
Декември '09 (2)
+ 2010 (11)
Януари '10 (1)
Април '10 (2)
Юни '10 (2)
Юли '10 (1)
Септември '10 (1)
Ноември '10 (2)
Декември '10 (2)
+ 2011 (12)
Януари '11 (3)
Февруари '11 (1)
Юли '11 (1)
Август '11 (2)
Септември '11 (2)
Октомври '11 (3)
+ 2012 (19)
Януари '12 (3)
Февруари '12 (1)
Март '12 (1)
Април '12 (2)
Май '12 (3)
Юни '12 (1)
Август '12 (2)
Септември '12 (1)
Ноември '12 (3)
Декември '12 (2)
+ 2013 (6)
Март '13 (3)
Юни '13 (1)
Август '13 (1)
Октомври '13 (1)
+ 2014 (7)
Март '14 (1)
Април '14 (1)
Юни '14 (1)
Септември '14 (3)
Декември '14 (1)
+ 2015 (5)
Януари '15 (1)
Март '15 (3)
Май '15 (1)
+ 2016 (5)
Юни '16 (1)
Юли '16 (1)
Септември '16 (1)
Ноември '16 (1)
Декември '16 (1)


Последни коментари:

30 May 2017, 02:02 от anrieff
26 May 2017, 01:00 от Mathew
30 Mar 2017, 13:59 от antfarmer
26 Dec 2016, 17:52 от Private
19 Dec 2016, 23:01 от ицаци
16 Dec 2016, 19:50 от Антон


Valid XHTML 1.0 Strict

Blogroll:

linkТимур и неговите командоси
linkivanatora
linkБезброй математици...
linkJoel on Software
linkRidiculous Fish
linkXKCD blag