Poznámky (de)kodéra

Nesouvislé fragmenty kódu

IntelliJ IDEA 13 Early Preview je venku

24.5.2013

Nová verze mého oblíbeného vývojového prostředí je uvolněna k nahlédnutí. Obsahuje mnoho novinek a vylepšení.

Z mého pohledu jsou nejzajímavější asi tyto body:

  • Import projektů ve formátu Gradle (Výchozí formát pro nově představené Android Studio)
  • Externí anotace pro Android API
  • Integrovaný 9-patch editor
  • Podpora filtrování hlášek v logcat-u (To mi chybělo asi nejvíce)

Github spustil nové hledání .. teď už je jasné že je plný kravin!

24.1.2013

Github spustil nové hledání využívající ElasticSearch a je to vážně povedená věc takové hledání. Například v situaci kdy používám špatně zdokumentovanou funkci a nevím přesně co s ní. Použiji hledání a zkusím najít její použití v jiných repozitářích.

Také jsem díky ní zjistil, že je Github plný kravin.

ListView widget pro Gideros

13.1.2013

Pro své potřeby jsem vytvořil komponentu ListView. Napsaná je v LUA a frameworku Gideros Mobile. To znamená, že ji lze použít na všech platformách které framework podporuje. Aktuálně se jedná o Android a iPhone.

Zdrojové kódy včetně ukázkových příkladů jsou k dispozici na GitHub-u.

 

Použití je triviální a přímočaré:

myList = ListView.new({
width = 280,
height = 390,
bgTexture = Texture.new("texture.png"),
rowSnap = true, experimental feature
friction = 0.92
data = data
})
myList:setPosition(x, y)

Ukázky:

Vysloužilá součástka jako stylová bluetooth RGB lampička

6.1.2013

Když jsem kdysi dávno rozebíral historický videopřehrávač z NDR, asistovala mi zvědavá přítelkyně a strašně se jí líbil kus sklíčka, tehdy používaný jako zpožďovací obvod.  Prý je krásný a měl bych z něj něco vyrobit. Nedlouho po tom vznikl nápad jak tuto součástku označovanou jako “ultrasonic delay line” využít. Nápad na bluetooth lampičku/notifikátor/svíčku s pracovním označením “lampiónek” byl na světě.

Zájemci o bližší informace o tomto “krásném sklíčku” najdou více třeba tady: http://www.eevblog.com/2012/11/19/eevblog-386-glass-delay-lines-part-2/

Konstrukci a výsledný tvar jsem měl vymyšlený, začal jsem tedy s elektronickou částí.  Schéma je triviální a výsledkem návrhu desky je miniaturní dvoustranný plošný spoj s využitím šuplíkových a lehce dostupných SMD součástek.

Schéma zapojení:

schéma zapojení

Plošný spoj (top/bottom):

Plošné spoje už doma delší dobu nevyrábím ale nechávám si je kusově vyrobit na zakázku. Cena je přiměřená, výsledek precizní a navíc ušetřím čas a nepořádek při výrobě. Minimální účtovaný rozměr dodavatele je 1dm2, takže jsem nechal vyrobit desek více aby se pokryla tato plocha. Pokud máte o DPS zájem, napiště mi.

Vyrobené DPS:

Součástky:

Použité součástky jsou lehce sehnatelné. Všechny jsou v SMD provedení.

Další vybavení:
  • ISP programátor, pro Attiny i bluetooth modul

Osazení:

Všechny součástky jsem pájel klasickou mikropájkou a nebylo potřeba žádné speciální zařízení. Krabičku jsem potřeboval hezkou a miniaturní takže jsem po chvíli hledání přistoupil k vlastnoruční výrobě. Celá krabička jsou dva čtverce z 5mm tlustého plexi které jsem uvnitř vyfrézoval (ručně – a už nikdy více) podle potřeby.  Povrchová úprava je černý lak kterému pomáhá několik vrstev bezbarvého laku. Spojená je miniaturními vruty vytaženými ze stařičkého mobilu Alcatel One Touch Easy.

Finální podoba:

Zařízení může sloužit k různým účelů. Díky použití Bluetooth je možné jej ovládat jak z mobilu, tak třeba z notebooku. Naprogramovaný mikrokontrolér zvládá několik módů:

  • svícení
  • blikání v barvě
  • prolínání barev
  • svíčka

Software:

Mikroprocesor Atmel 2313  je nutné naprogramovat pomocí ISP programátoru. Bluetooth modul je nutné nakonfigurovat  ještě před osazením. Po osazení se mnou již nekomunikoval a musel jsem jej odpájet a naprogramovat samostatně. Rychlost komunikace je nutné nastavit na hodnotu 38400. Více o konfiguraci modulu najdete například na http://mbed.org/users/edodm85/notebook/HC-05-bluetooth/

Android:

Přítelkyni jsem k ovládání napsal také aplikaci pro Android. Její nejčastější použití lampiónku je režim elektronické svíčky.

Lampiónek - aplikace pro android

Lampiónek – aplikace pro android

Video ukázka:

Točeno mobilem, barvy jsou ujeté do červena :/

Ke stažení:

Javascript – rychlý replace

26.11.2012

Při optimalizaci slabých míst v jedné starší komponentě jsem narazil na místo kde se celkem nešikovně a pomalu nahrazovaly znaky. Pro inspiraci zveřejňuji kód který nahrazovačny nad objemnými řetězci výrazně zrychlil.

/**
 * Fast Javasvript replace
 * @param {String} value Original string
 * @param {Object} charmap  The key-value object to replace the value with
 * @return {String} New string with replaced values
 */
function replace(value, charmap) {

	var patt = function() {
			var p = "";
			for(var k in charmap) {
				if(charmap.hasOwnProperty(k)) {
					p = p.concat(k);
				}
			}
			return "[" + p + "]";
		};

	return value.replace(new RegExp(patt(), "g"), function(chr) {
		return(chr in map) ? map[chr] : chr;
	});
}


// Příklad použití:

//mapa nahrazovaných znaků/částí
// klíč - co najít, zkak/regulární výraz
// hodnota - čím nahradit, řetězec
var map = {
	"a": "b",
	"<": "&lt;",
	">": "&gt;",
	"\.": "[dot]",
	"\?": "[what]"
};

var result = replace("text<strong>tecka=.?</strong>", map);

Příklad online na jsfiddle.net.

Zajímavá organizace práce s Trello.com

14.11.2012

Na nedávném #devfestu  mě Jiří Knesl inspiroval ke změně způsobu práce. Díky. Ke správě svých (nejen pracovních ) úkolů nyní zkouším použít Trello namísto stávajícího přebujelého systému.

Zdá se to být výborný pomocník. Chybělo mi jen, že úkoly nelze vytvářet odesláním e-mailu, jak už jsem zvyknutý. Možná umí a jsem jen slepý, já to vyřešil pomocí služby zapier.com. Ta umí automatizovat na co si vzpomenete a zdarma pro 5 zap-ů.  Malým mínusem není real-time zpracování ale 15-ti minutový interval plánovače.

Sublime Text 2 – sen jednoho programátora

1.10.2012

Jako každý programátor jsem věnoval nemálo času hledání (z mého pohledu) ideálního editoru. S výběrem excelentního editoru mi pomohl až Jindřich Šaršon, respektive jeho tip na Google+. Jeho tip na “úžasný programátorský editor” byl Sublime Text 2. Po měsíci používání musím říct, že uspokojil všechny mé ujeté programátorské choutky.

Pokud bylo něco s čím si základní instalace neporadila, stačilo využít širokou základnu modulů.
Základem je nainstalovat Package Control

Pro svoje pohodlí při práci pak využívám následující moduly:

S tímto editorem se můžete v klidu věnovat klávesnici a na myš pomalu zapomenout. Klávesové zkratky a příkazy lze využít k libovolné operaci s editorem. Pokud by se našla specialita, která by někomu nevyhovovala, je možné libovolně si klávesové zkratky předefinovávat.

Krátké představení klávesové magie:

  • CTRL + P  – menu na cokoli. Pomocí této nabídky lze spustit libovolnou funkci
  • CTRL + R – jdi někam! .. tedy na definici funkce. Tuhle zkratku si zamilujete!
  • CTRL + D, CTRL + K – označí/přeskočí další výskyt aktuálního výběru. Až vyberete co potřebuje, stačí začít psát – editujete všechny výskyty a najednou.
  • CTRL + UP, CTRL + UP – přesun řádku
  • CTRL+ ALT + UP, CTRL+ ALT + DOWN – sloupcový výběr.
  • SHIFT + F11 - Distraction Free Mode, výborná věc pokud se potřebujete soustředit na práci a ignorovat všemožné notifikace systému.
  • CTRL + SHIFT + F – vyhledávání s podporou vyhledávání v souborech !!
Toto je pouze malé seznámení s užitečnými klávesovými zkratkami které mi nyní ulehčují práci.
Upozorňuji, že dlouhodobá práce s editorem Sublime Text 2  může způsobit averzi k sahání na myši. :-)
Pro sestavování a deploy projektů už dlouho využívám mravence a se Sublime na tom nemusím nic měnit. Stačí projektu nastavit správný builder – Ant – a pomocí CTRL+B  jej spustit.

WEDOS spouští podporu HTTPS

31.3.2012

Dnes přišla potěšující zpráva, že po dlouhém čekání spouští webhostér WEDOS  podporu HTTPS. Oficiální datum spuštění je pondělí 2.dubna ale nedočkavci si mohou zažádat o spuštění HTTPS již nyní pomocí  jejich kontaktního formuláře.

Z oficiální zprávy WEDOS-u:

Spouštíme podporu HTTPS u webhostingu

Nabízíme 2 varianty HTTPS:

  • se sdíleným certifikátem - zdarma, vhodné pro váš zabezpečený přístup do administrace CMS či e-shopu, nevhodné pro návštěvníky a zákazníky
  • s vlastním certifikátem - vhodné i pro zabezpečený přístup vašich návštěvníků a zákazníků na vaše WWW stránky, nutno u webhostingu aktivovat vlastní IP adresu – zpoplatněno 100 Kč bez DPH měsíčně (120 Kč s DPH) a nutno dodat vlastní certifikát

Celá zpráva