Technology blog oriented towards good design and impressive web applications.

IdleTogether Home

Archives Posts

Twitter pictures posted live (via twitpic)

March 30th, 2010 by Nicolas Noben

“Shit people post on twitter” is a 10h experiment I wrote that uses the twitpic api and twitter api to pull all the photos that are posted on twitter LIVE.

It’s very entertaining and often NSFW, always fun. In fact I do sit in front of it for a while without really noticing time flying by.

Enjoy watching twitter photos posted live

photos people post on twitter twitpic live.jpg

Filed under Twitter, News, Rant, Ajax having No Comments »

Archives Posts

Reduce CPU usage in Air applications

May 21st, 2009 by Nicolas Noben

arno.org has a great article on how to reduce the CPU usage in your air apps. The meat of it is essentially not using ENTER_FRAME (duh), and more interestingly dropping the framerate to once every 10 seconds (0.1) once the air application goes in the background (minimized/hidden).

Read the full article at arno.org

Filed under News, Air, Flex, All having No Comments »

Archives Posts

The case for a great CAPTCHA idea: Rotate the image

May 7th, 2009 by Nicolas Noben

Here is a great concept for a CAPTCHA.

The ROTCAPTCHA (PDF, 1.4MB).

It’s a CAPTCHA based on image orientation.

The ROTCAPTCHA system requires users to adjust randomly rotated images to their upright position. This is a task most people will be familiar with given the state of early digital cameras, etc.

This system has many advantages, such as being language independent and support many input sources.

Picture 1.png

Filed under Art, News, Rant, Flex, Flash, All having No Comments »

Archives Posts

yooouuutuuube

May 7th, 2009 by Nicolas Noben

Brilliant. Why didn’t I think of that? yooouuutuuube.com

Filed under News, Art, Flash, All having No Comments »

Archives Posts

Google Tv ad platform

May 7th, 2009 by Nicolas Noben

With the google TV Ad platform, learn how google makes use of the data it uses and how it’s all about the initial audience retained (%IAR).

Via the Google Blog.

Filed under Google, News, All having 1 Comment »

Archives Posts

Rolando 2 for iphone is looking slick

May 7th, 2009 by Nicolas Noben

Via kotaku

Filed under News, Rant, All having No Comments »

Archives Posts

JSWOOF - A faster JSON encoder decoder for Flex

March 29th, 2009 by Nicolas Noben

JSWOOF is a pretty neat JSON parser. It’s lightweight and about a third faster than the corelib JSON encoder/decoder.

Filed under News, Air, Flex, All having No Comments »

Archives Posts

Twitter Search becomes the new Google for 0-day news & reviews

February 18th, 2009 by Nicolas Noben

2755v2-max-150x150.pngTechcrunch has a very good article about Twitter and its new position on the market of search engines.

Essentially when a news breaks out or a product is being launched, Google will take several days to aggregate the information said about it, while Twitter Search can reveal nearly instant opinions.

The barriers is also lower as a Twitter account takes a lot less maintenance than a blog account. Writing a post on Twitter can be done while on the phone and virtually takes no time.

However, because it is instant feedback, it also implies that the ‘review’ of the news, product or subject in the tweet is obviously right off the bat, and might not be polished / thought about. People could change their opinion and post again in 10 mins.

Twitter, which I used to hate, is starting to take a very important place on the net and I’m mature enough to admit it and embrace it. That said, it is still a gezillion of idiots fantasizing about their life, writing about their pets or the latest battlestar.

Filed under Twitter, Google, News, Rant, All having 3 Comments »

Archives Posts

Bespin - Web-based code editor from Mozilla

February 14th, 2009 by Nicolas Noben

bespin-code-editor-online-web-2.0.pngMozilla Labs is working on a new project called Bespin. It’s a web-based code editor and it looks promising. It will eventually allow participants to collaborate on the same files straight from their browser.

The project is at a very early stage but it already looks solid.

It doesn’t do much at the moment but they’re confident that Bespin will eventually be highly extensible and easily accessible to users.

More info in this post and here.

Bespin screenshot mozilla.png

Filed under News, All having No Comments »

Archives Posts

Digg Mob - Observing the mob live

February 12th, 2009 by Nicolas Noben

Digg Mob talk live.pngThe Digg Mob experiment is a flash application that follows the comment as they are posted lived on Digg, regardless of the post.

It’s freaky to see that there are comments posted every 2-3 seconds, sometimes faster.

The app is beta but it’s browsable. Each comment is shown on one line and is clickable. From there you can read the blurb about the Digg post and/or visit the site straight from Digg Mob.

Digg mob comments live api.jpg

Filed under News, Flash, All having No Comments »

Archives Posts

Flash / Flex / AIR Development Adelaide - Freelance Available…

February 12th, 2009 by Nicolas Noben

senior-flash-flex-webapplication-ria-development-freelance-australia.pngJust a quick personal update. I’m in the process of going Freelance in Adelaide for Flash development and Flex development.

If you need or know someone who needs a senior Flash/Flex/AIR developer with experience, please don’t hesitate to forward my details.

I’m open for freelance and contract work, remotely or on location anywhere in Australia.

I’ve been developing and designing websites and web applications since the late 90ies and I’ve been full-time Flash-ist for 6 years. I started as a Web Designer. With experience on both sides, I manage my time efficiently and take care of a project from specifications to deployment.

Cheers
Nicolas

Filed under News, Google, Flex, Flash, Blogroll, All having No Comments »

Archives Posts

Adobe launches the Adobe AIR™ Market Place

February 11th, 2009 by Nicolas Noben

Today Adobe announced the launch of the Adobe Air Market Place. It’s a new website supposed to help the promotion of Adobe Air applications and to highlight them for sale.

It’s not an Apple app store, for sure, but it should help promote your Air applications out there.

Picture 5.jpg

Filed under News, Flex, All having No Comments »

Archives Posts

Working through Screens

February 11th, 2009 by Nicolas Noben

Working through Screens: 100 Ideas for Envisioning Powerful, Engaging, and Productive User Experiences in Knowledge Work.

It’s not the easiest read, but it has some great insight, and hey, can’t beat a free ebook.

Picture 4.jpg

Picture 3.jpg

Filed under Tutorial, News, All having No Comments »

Archives Posts

Obsessing - web based processing sandbox

February 11th, 2009 by Nicolas Noben

obsessing.pngThanks Ollie for this one. Obsessing is a web based processing sandbox.

Beta features will include real-time error checking, code-completion, import, export, tabs, and saving to Amazon s3.

Still in heavy beta.

Picture 10.jpg

Filed under News having No Comments »

Archives Posts

SpatialKey: Heat mapping application

January 21st, 2009 by Nicolas Noben

Spatialkey let’s you overlay data on a map. Really cool.

Picture 3.jpg

Filed under News, Flex having No Comments »

Archives Posts

Easy Form Validation and Submit Button enable-disable in Flex 3

November 18th, 2008 by Nicolas Noben

The submit button is enabled/disabled automatically based on the form elements’ validations.

The form

<mx:Form x="0" y="90" width="100%" height="100%" id="form1" creationComplete="resetForm()">
	<mx:FormItem label="Email" width="100%">
		<mx:TextInput width="100%" id="txtEmail" change="validateUs()" />
	</mx:FormItem>
	<mx:FormItem label="Password" width="100%">
		<mx:TextInput width="100%" id="txtPassword" displayAsPassword="true" change="validateUs()"/>
	</mx:FormItem>
	<mx:FormItem width="100%">
		<mx:Button id="btnLogin" label="Login" width="85" height="25" click="loginUser()" />
	</mx:FormItem>
</mx:Form>

The validators

<mx:EmailValidator id="val1" source="{txtEmail}" property="text" required="true" />
<mx:StringValidator id="val2" source="{txtPassword}" property="text" required="true" minLength="2" />

The script

private function resetForm() :void
{
	btnLogin.enabled = false;
}
private function validateUs() :void
{
	btnLogin.enabled = (Validator.validateAll([val1,val2]).length == 0);
}
Filed under Tutorial, News, Flex, All having 2 Comments »

Archives Posts

Happy Birthday IE6!! And DIIIIIE.

August 27th, 2008 by Nicolas Noben

IE6 is 7 years old!, and Wisdump has a campaign to kill the web browser that just won’t die.

Few facts about IE6:

  • it came out a few weeks before the Twin Towers fell
  • it came out before the Nintendo GameCube
  • it came out before the first iPod.

I say let’s do it. Let’s do whatever it takes to bury that piece of c… nightmare.

Filed under News, Rant, All having 1 Comment »

Archives Posts

Student forced to remove Tris from Itunes App Store

August 27th, 2008 by Nicolas Noben

Developer to pull Tris from App Store tomorrow

This is ridiculous. Tris is one of the best app for free on the iphone store. It doesn’t even have the name TETRIS and it is better than the Tetris that you have to pay for on Itunes.

They could just buy it instead of canning it. EA is really being a bully.

Filed under News, Rant, All having No Comments »

Archives Posts

Tile Windows in OS X Leopard

August 27th, 2008 by Nicolas Noben

ASAppIcon.pngOne thing that I really missed when moved from XP to OS X was the ability to tile windows and make use of them fullscreen.

Yes, it’s not for everyone, and it’s not for every apps but it’s damn handy when you are working on 2 or 3 different files in TextMate.

That’s where applescript black magic comes out. I found a few script, most of them were shit, except one.

bbs.macscripter.net -> use the second one, it has settings.

All you need to do is copy and paste that in SCRIPT EDITOR, save it as a script scpt in your documents folders or applications folders.

Then in Quicksilver, add a triggers to call that script. Mine is Control+` and VOILA, TextMate has wicked Tiled Windows now.

here are my settings

property horizontalSpacing : -4 — sets the horizontal spacing between windows
property verticalSpacing : -4 — sets the vertical spacing between windows
property maxRows : 1
property maxCols : 3

-4 because otherwise, there is gap, even at 0 (due to drop shadows).

Note: it doesn’t work well with Finder or Flex Builder ;-)

tiled windows textmate osx.jpg

I attach the script for archiving purposes and in case that site falls off the earth.

All credits go to isherman and dennis from bbs.macscripter.net for the following:

--tile windows of frontmost applications in a grid
--this script is useful for
--multiple window chatting
--working side by side of several windows of the same app

--make need to make it as a stay open application later
--for now assume that it is opened and closed per invokation

property horizontalSpacing : -4 -- sets the horizontal spacing between windows
property verticalSpacing : 0 -- sets the vertical spacing between windows
property maxRows : 1
property maxCols : 3

on run {}
	local a
	set userscreen to my getUserScreen()

	--display dialog (getFrntApp() as string)
	try
		set applist to getFrntApp()
		if length of applist = 0 then
			return
		end if
		set a to item 1 of getFrntApp()
	on error the error_message number the error_number
		display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
	end try

	try
		tileScriptable(a, userscreen)
	on error the error_message number the error_number
		--display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
		try
			tileUnscriptable(a, userscreen)
		on error the error_message number the error_number
			display dialog "Error: " & the error_number & ". " & the error_message buttons {"OK"} default button 1
		end try
	end try

end run

on tileScriptable(a, screen)
	local i, c
	set i to 1
	tell application named a
		set theWindows to every window of application a whose visible is true and floating is false and ¬
			modal is false -- and miniaturized is false
		set c to count theWindows
		if c = 0 then
			return
		end if
		set tiles to calTileBounds(c, screen, 1)
		repeat with theWindow in theWindows
			my tileScriptableWindow(a, theWindow, item i of tiles)
			set i to i + 1
		end repeat
	end tell
end tileScriptable

on tileUnscriptable(a, screeninfo)
	-- unscriptable app
	local i, c
	set i to 1
	tell application "System Events"
		set theWindows to (every window of application process a)
		--set theWindows to my filterUnscriptableInvisible(theWindows)

		set c to count theWindows

		if c = 0 then
			return
		end if

		--display dialog screeninfo as string giving up after 5
		set tiles to my calTileBounds(c, screeninfo, 1)
		repeat with theWindow in theWindows
			--display dialog (class of visible of theWindow)
			my tileUnScriptableWindow(a, theWindow, item i of tiles)
			set i to i + 1
		end repeat

	end tell
end tileUnscriptable

on filterUnscriptableInvisible(ws)
	-- filter out from ws windows that are docked
	set newws to {}
	set docklist to getNamesDocked()
	--display dialog (docklist as string)
	repeat with theWindow in ws
		if name of theWindow is not in docklist then
			set end of newws to theWindow
		end if
	end repeat

	--display dialog (count newws)
	return newws
end filterUnscriptableInvisible

on getNamesDocked()
	tell application "System Events" to tell process "Dock"'s list 1
		set l to name of UI elements whose subrole is "AXMinimizedWindowDockItem"
	end tell

	return l
end getNamesDocked

on tileScriptableWindow(a, w, bound)
	tell application a
		set bounds of w to bound
	end tell
end tileScriptableWindow

on tileUnScriptableWindow(a, w, bound)
	tell application "System Events"
		--display dialog (count position of w)
		set AppleScript's text item delimiters to " "

		set position of w to {(item 1 of bound), (item 2 of bound)}

		-- why the -5?
		set size of w to {(item 3 of bound) - (item 1 of bound) - 5, ¬
			(item 4 of bound) - (item 2 of bound) - 5}
		--display dialog (count properties of w)
	end tell
end tileUnScriptableWindow

on calTileBounds(nWindows, screen, direction)
	-- return a list of lists of window bounds
	-- a simple tile algo that tiles along direction (current only 1=horizontal)

	local nRows, nColumns, irow, icolumn, nSpacingWidth, nSpacingHeight, nWindowWidth, nWindowHeight
	set {x0, y0, availScreenWidth, availScreenHeight} to screen
	set ret to {}

	set nRows to (nWindows div maxCols)
	if (nWindows mod maxCols) ≠ 0 then
		set nRows to nRows + 1
	end if

	if nRows < maxRows then
		set nSpacingHeight to (nRows - 1) * verticalSpacing
		set nWindowHeight to (availScreenHeight - nSpacingHeight) / nRows
	else
		set nSpacingHeight to (maxRows - 1) * verticalSpacing
		set nWindowHeight to (availScreenHeight - nSpacingHeight) / maxRows
	end if

	repeat with irow from 0 to nRows - 1
		if nRows ≤ maxRows and irow = nRows - 1 then
			set nColumns to nWindows - irow * maxCols
		else
			set nColumns to maxCols
		end if
		set nSpacingWidth to (nColumns - 1) * horizontalSpacing
		set nWindowWidth to (availScreenWidth - nSpacingWidth) / nColumns
		set nTop to y0 + (irow mod maxRows) * (verticalSpacing + nWindowHeight)
		--display dialog "Top: " & nTop buttons {"OK"} default button 1
		repeat with icolumn from 0 to nColumns - 1
			set nLeft to x0 + (icolumn) * (horizontalSpacing + nWindowWidth)
			set itile to {¬
				nLeft, ¬
				nTop, ¬
				nLeft + nWindowWidth, ¬
				nTop + nWindowHeight}
			set end of ret to itile
			--display dialog item 3 of itile as string
			--set itile to {x0 + (icolumn - 1) * wgrid, y0, wgrid, hgrid}
			--set item 3 of itile to ((item 1 of itile) + (item 3 of itile))
			--set item 4 of itile to ((item 2 of itile) + (item 4 of itile))
		end repeat
	end repeat

	return ret
end calTileBounds

on getFrntApp()
	tell application "System Events" to set frntProc to ¬
		name of every process whose frontmost is true and visible ≠ false
	return frntProc
end getFrntApp

on getUserScreen()
	-- size of the menubar
	tell application "System Events"
		set {menuBarWidth, menuBarHeight} to size of UI element 1 of application process "SystemUIServer"
		--display dialog "Menubar width: " & menubarWidth & ", height: " & menubarHeight
		set dockApp to (application process "Dock")
		set {dockWidth, dockHeight} to size of UI element 1 of dockApp
		--display dialog "Dock width: " & dockWidth & ", height: " & dockHeight
		set dockPos to position of UI element 1 of dockApp
		--display dialog "Dock x: " & (item 1 of dockPos) & ", y: " & (item 2 of dockPos)
	end tell

	-- size of the full screen
	(*
{word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Width") as number, ¬
word 3 of (do shell script "defaults read /Library/Preferences/com.apple.windowserver | grep -w Height") as number}
*)
	tell application "Finder"
		set screenSize to bounds of window of desktop
		set screenWidth to item 3 of screenSize
		set screenHeight to item 4 of screenSize
	end tell
	--display dialog "Screen width: " & screenWidth & ", height: " & screenHeight

	-- by default, set the available screen size to the full screen size
	set availableWidth to screenWidth
	set availableHeight to screenHeight - menuBarHeight
	set availableX to 0
	set availableY to menuBarHeight

	--determine the userscreen origin and size

	-- case 0: hidden dock
	-- if (item 1 of dockPos < 0 or item 1 of dockPos ≥ screenHeight) then
	-- no need to change anything
	-- end if

	-- case 1: bottom dock
	if ((item 2 of dockPos) + dockHeight = screenHeight) then
		set availableHeight to availableHeight - dockHeight
	end if

	-- case 2: left dock
	if (item 1 of dockPos = 0) then
		set availableWidth to availableWidth - dockWidth
		set availableX to dockWidth
	end if

	-- case 3: right dock
	if ((item 1 of dockPos) + dockWidth = screenWidth) then
		set availableWidth to availableWidth - dockWidth
	end if

	return {availableX, availableY, availableWidth, availableHeight}
end getUserScreen
Filed under Tutorial, News, All having 5 Comments »

Archives Posts

My Tiny Jesus * Another great use of Twitter

August 3rd, 2008 by Nicolas Noben

Another great use of the useless Twitter is My Tiny Jesus. No explanation as to what it does besides pumping recent Twitts.

That said, anybody using Twitter data is either looking for art or fun. So having no explanation sure fits the bill.

Twitter is not my favourite application as you must know by now, but I am often amazed by the things people come up with using their api. It’s filled with tons and tons of useless information. Brilliant for a weirdo mashup.

I will definitely have a play with the Twitter API myself once I’m done with Digg Mob Talk.

Twittearth was brilliant.

And so was Twistori.

Now be sure to check out My Tiny Jesus.

Twitter Tiny jesus.jpg

Filed under News, Art, Rant, Flash having No Comments »

« Previous Entries