Jump to the navigation, or the content
Contact | Impress

View Options

Social Radar

An XBox Live friend status plasmoid would be awesome.

Saturday 17:07

Trying to ignore that the leaves are changing colors

Saturday 16:03

Heading to Rob' s for breakfast, then to target for some stuff we need.

Saturday 12:32

At the UA soccer game

Friday 19:43

Ok so the temperature in here improved a little. It is now only 30 after all that rain.

Friday 16:20

So bored.

Friday 15:15

UA is offering me $1000 and a full refund to move off campus. Sounds like someone overbooked.

Friday 15:00

I took the thermometer out of the cooler to see how hot it is in here: 32C. For those who still think digital watches are pretty neat, t ...

Friday 13:44

Its supposed to storm today and a friend has my umbrella. Dang.

Friday 9:46

Crap. My laptop' s clock is wrong. Hope i' m not too late for class.

Friday 8:50

Its a fire drill. And the Obama supporters are registering voters. Thats dedication.

Thursday 21:03

Streamlining some data transfers on my website

Thursday 18:20

I have successfully wasted 15 minutes pushing buttons on a calculator. Please send help.

Thursday 16:16

Its 4:00. You know what that means? I' m bored as heck with an hour to go!

Thursday 16:01

this isn' t my workplace. We never get orders after 1. Whats going on here; i' m confused...

Thursday 14:07


Categories

About

Trever Fischer is a sophomore at The University of Akron with a strong enthusiasm towards coding, writing, good music, photography, and above all: oranges. This is his site. Specifically, this is his "About" box. In addition to recently having finished his first year of college, he is also a hacker who tinkers with Amarok, Plasma, Perl, and PHP.

Archives

 

July 2007
S M T W T F S
« Jun   Aug »
1234567
891011121314
15161718192021
22232425262728
293031  

My Twitter Engine

I managed to squeeze in finishing my twitter data engine between sleep and playing airsoft today. It isn’t totally what I want because I’m not sure how to do what I want, but here it is.

Just download it and configure with CMake. Be sure you specify where you installed KDE with -DCMAKE_INSTALL_PREFIX=/path/to/kde4/ so that I can find Plasma.

There is no plasmoid included with this package, just a simple interface to Twitter’s API. It only retrieves the public timeline, individual user timelines, and individual tweets. To use it, ask for the “twitter” data engine in your plasmoid. As noted in a previous post, the layout of the data is essentially the same, but with a few tweaks:

"Timeline"
	[
		34824324
		38902380
		38904302
		38290874
	]
“Timeline:Workman161″
	[
		38902380
	]
“Update:38902380″
	“ID”
		38902380
	“Date”
		(QDateTime)
	“Status”
		“Hey, I’m building a plasma engine!”
	“User”
		“workman161″

Square brackets denote QLists, quotes denote QStrings. The “Timeline” source is the public timeline. Each tweet gets its own source. This layout seemed to be the most logical way of forming it to me, but I’m sure others have better ideas. Suggestions are welcome. Have a look at the engine explorer for a more hands-on view. Speaking of which,

Twitter data engine as seen by the engine explorer

Bugs

What new software isn’t complete without nagging bugs?

  • User timelines don’t get automatically updated. To receive word of an update, it must fall off the engine and then the plasmoid must manually query it.
  • The initial creation is asynchronous.
  • A limit of 30 sources might be a problem for people with a lot of friends to follow.

Suggestions

During the course of development, I came across some suggestions for the plasma team. First, making some sources ‘immutable’ would be nice. It is possible for the public timeline to fall out of the list, which means DataEngine::query() is useless. Second, more examples of ‘proper’ usage of Plasma for asynchronous data sources. That’d be really nice. Third, allowing plasmoids to interact with the engines. Right now communication is rather one-dimensional. The plasmoid asks for what it wants, and the engine feeds it as long as it is alive. Having the plasmoid do something such as telling the engine to mount a device or update your twitter status would further separate the implementation from the design.