Monthly Archives: June 2012

Napi Excel WTF

Summa summarum, a 16 helyiérték hosszú numerikus adat végét az Excel angolosan levágja – sehol egy warning, egy “micsinálsz-hülye-nem-tudok-ekkorát”, semmi. Ha egy szám (szerinte hibásan) szövegként kerül be egy cellába, azért bezzeg tud zöld warning háromszöggel rinyálni. Ennek a bugnak az az igazi szépsége, hogy VBA kódból elő tudsz állítani egy cellában 16 jegyű numerikus tartalmat úgy, hogy a cella azt az adatot jeleníti meg, amit te beleírtál, DE ugyanakkor nem azzal számol, hanem a lecsapott utolsó digitű változattal! Tegnap ez úgy jött elő, hogy egy SUMIF lookup-hoz használta egy rutin a 16 jegyű számot és mivel volt több olyan cella a SUMIF lookup range-ben, amely 16 jegyű numerikus adatot tartalmazott és az első 15 jegyük megegyezett, a rohadék egy kalap alá vette mindet, dacára a 16. digit különbözőségének. A fent leírt SUMIF hiszti megoldása persze egyszerű – numerikus adat helyett szövegként kell használni a cellában a hosszú numerikus értéket (ehhez elég egy ‘ karakter a cellatartalom elejére, vagy a cellaformátum Text állapotúvá kapcsolása). Nem is ezzel van a baj, hanem a módszerrel, ahogy a drágaságos Office alkalmazás a problémát kezeli. ]]>

Kapros túrós panoráma, piros nemtudommiaz csücsökkel

Preface: nem tudok sütit sütni, úgyhogy simán kipróbálhatod Te is, ez menni fog. Előre elnézést a jobb felső sarokban levő piros izéért, annyira elképesztő illata van a frissen felvágott lepénynek, hogy már a hideg tejfölt is csak remegő kézzel tudtam a 25×5 centis szelethez kikeverni, nemhogy a helyszín beállításával pepecseljek: 20120610-5638 Most nő a kapor a kertben, úgyhogy ez a süti kvázi szezonális. Ha épp erre járnál és becsöngetsz, adok friss kaprot szívesen aztán toljad! Na de csapjunk is bele! Ez egy élesztős tészta, láthatóan nincs széjjelkelve, de kóstolás után bátran állítom, hogy nem sok hibája van így sem. Nézzük:

  • 3 deka élesztőt pici langyos tejben felfuttatsz, majd 40 deka liszttel, 5 deka vajjal, 5 deka cukorral, egy tojással, másfél deci tejjel és egy csipet sóval tésztát gyúrsz (a tészta ugye nem érhet az élesztőhöz, tehát mondjuk előbb eldolgozod az egyiket, aztán bele a másikat). Félreteszed egy edénybe lefedve kelni, amíg megcsinálod a többi cuccot.
  • Most bekapcsolod a sütőt 180 fokra, hogy legyen ideje átmelegedni.
  • Egy kiló túrót (nehogy zsírszegény legyen!) 10 deka cukorral, 4 tojással, 10 deka grízzel, egy csipet sóval összekeversz tölteléknek. Kóstold, hogy mennyire édes / mennyire kapros, aztán a cukrot és a kaprot állítsd az ízlésed szerint.
  • Egy kisebb tálban fél deci tejfölt egy tojással és egy csipet sóval kikeversz.
  • Fogsz egy standard tepsit (30×25 centi asszem), kivajazod, kilisztezed. Ami liszt nem ragadt a vajra, azt természetesen nem hagyod a tepsi alján.
  • Kinyújtod a tésztát olyan vékonyra, amilyenre tudod (2-3 mm már okés). Kibéleled a tésztával a kikent tepsidet úgy, hogy az oldalára is jusson.
  • Beöntöd a tölteléket, kézzel szépen elkened simára, aztán meglocsolod a tejfölös tojásos kencével, hogy legyen neki teteje.
  • 40-50 perc alatt készre sütöd. Készen kb. akkor van, ha még nem szenes a teteje (=még szívesen megennéd).
Ha kész van, adjál neki enyhén cukros hideg tejfölt, nagyon szereti!]]>

Workflow: iOS Webapp startup/icon image generator

A probléma Designer véna híján kitaláljuk, hogy csinálunk egy darab szép nagy image-et, amiből mondjuk középre rendezve n féle méretet kellene legyártani, hogy a webalkalmazásunk mindenféle iOS eszközt kiszolgáljon ikonnal, illetve startup screen grafikával.

A megoldás

Először is előkotrunk a neten egy HOWTO-t, ami elmagyarázza, hogy mi is kell mindehhez webalkalmazásunk HTML head szekciójába:
<!-- iOS webapp icons -->
<link rel="apple-touch-icon" href="touch-icon-iphone.png" />
<link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" />
<link rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone4.png" />
<link rel="apple-touch-icon" sizes="144x144" href="apple-touch-icon-144x144.png">
<!-- iOS webapp startup images -->
<!-- iPhone -->
<link rel="apple-touch-startup-image"
		 media="(device-width: 320px)"
		 href="/startup.png">
<!-- iPhone (Retina) -->
<link rel="apple-touch-startup-image"
			media="(device-width: 320px) and (-webkit-device-pixel-ratio: 2)"
			href="apple-touch-startup-image-640x920.png">
<!-- iPad (portrait) -->
<link rel="apple-touch-startup-image"
      media="(device-width: 768px)
         and (orientation: portrait)"
      href="apple-touch-startup-image-768x1004.png">
<!-- iPad (landscape) -->
<link rel="apple-touch-startup-image"
      media="(device-width: 768px)
         and (orientation: landscape)"
      href="apple-touch-startup-image-748x1024.png">
<!-- iPad (Retina, portrait) -->
<link rel="apple-touch-startup-image"
      media="(device-width: 768px)
         and (orientation: portrait)
         and (-webkit-device-pixel-ratio: 2)"
      href="apple-touch-startup-image-1536x2008.png">
<!-- iPad (Retina, landscape) -->
<link rel="apple-touch-startup-image"
      media="(device-width: 768px)
         and (orientation: landscape)
         and (-webkit-device-pixel-ratio: 2)"
      href="apple-touch-startup-image-1496x2048.png">
Ha ez megvan, csak elő kell állítani a sokféle méretű képet – ehhez vadásszunk le egy ImageMagick-et innen. Az ImageMagick felmegy MacPortsból is, de felpakolhatjuk kézzel is – ez utóbbi korrektül le van írva az előbb említett linken, de gyors kiteszem ide is: Csomagoljuk ki és csináljunk egy symlinket az általa létrehozott folderre:
mkdir ~/bin
cd ~/bin
tar xzvf ~/Downloads/ImageMagick-x86_64-apple-darwin11.3.0.tar.gz
ln -s ~/bin/ImageMagick-6.7.5 ~/bin/ImageMagick
Tegyük bele ezeket a ~/.bash_profile scriptünkbe:
# <imageMagick>
export MAGICK_HOME="$HOME/ImageMagick"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"
# </imageMagick>
Élesítsük is mindjárt:
source ~/.bash_profile
Majd írjuk meg a kép konvertálásához szükséges ImageMagickot molesztáló scriptünket (jól bekommenteztem, hátha valaha jól jön még mintának, ha Bash-ban kívánnál tömbökkel szívni):
#!/bin/sh
# createiOSWebappImages.sh by fns@fns.hu
# created 2012.06.03
# lmdate 2012.06.03
function createImages() {
	ext=".png" # default source & target extension
	args=( "$@" ) # all the paameters in an array
	ac=${#args[@]} # parameter array length
	p=${args[0]} # basePath: 1st parameter
	bf=$p/${args[1]}$ext # baseFile: 2nd parameter
	f=${args[2]} # iconFile: 3rd parameter
	for (( i=3; i<$ac; i++ )) # first 3 parameters were not the member of our resizer array so start from 3rd one
	do
		str=${args[$i]} #get array element
		len=${#str} #get length of string
		xpos=`echo "$str" | sed -n "s/[x].*//p" | wc -c` # get "x" pos within string
		w=${str:0:(xpos-1)} #substr
		h=${str:(xpos):(len-xpos)} #substr
		f2="$p/$f$str".png
		echo "Resizing image; source = $bf new_size = $str target = $f2"
		convert $bf -resize $str -gravity center -extent $str $f2
	done
} # createImages()
basePath="." # location of source & target files
baseFile="ios-webapp-baseimage" # source file
iconFile="apple-touch-icon" # target file prefix
iconSizes=( 57x57 72x72 114x114 144x144 ) # target file sizes in an array
startupFile="apple-touch-startup-image" # target file prefix
startupSizes=( 320x460 640x920 768x1004 768x1024 1536x2008 1496x2048 ) # target file sizes in an array
createImages $basePath $baseFile $iconFile "${iconSizes[@]}"
createImages $basePath $baseFile $startupFile "${startupSizes[@]}"
Végül futtassuk le és a generált képeket fogyasszuk egészséggel!]]>