Software engineering and woodwork

Witter

(logo courtesy of @mece66)

I’m developing a twitter client for maemo. Yes I know there already is one. But I felt like writing my own, from scratch, and rather stupidly not just using nicely existing twitter libraries etc (note this *was* the case, but from 0.2.1 I have started to make use of those libraries so I can focus on other stuff I want to learn. no one wants to learn oauth from scratch..trust me). This is an education exercise.

There is now a maemo downloads page for Witter now that it is in the Extras repository.

From now on I’m going to keep adding new version info above old version info, rather than revise everything to keep up to date. I’m also trying to keep a reasonable record of how much time it takes for any given feature/update. Although I’m excluding all the time it take to build/package/upload test a given release. which can vary but takes about an hour per release

If you like Witter, and would like to show your appreciation, there is a button in the top right which will let you buy me a pint.

This will output lots of diagnostic messages that will help me understand what I broke ;-)Also be sure to tell me which version you are using, it can change rapidly, and there are normally at least 2 available at a given time.

0.3.5-4 -> 0.3.7-2 – I’ve been pretty bad at keeping this up to date, I did a lot of work in extras-devel, and a big re-write which I didn’t want to draw too much attention to, since it was pretty unstable for a while. I’ve now pushed 0.3.7-2 to extras-testing to get broader feedback. The UI has an all new layout, There is now a ‘home’ screen which shows your profile info, from which you can toggle location sharing on/off, and jump to normal timeline, search stuff, contacts. All views how support a ctrl+up, ctrl+down to scroll to top/ bottom respectively. location can be enabled to share your location in a tweet. it is also understood in other peoples tweets so it will show their location if available. The new search view loads your saved search terms and makes a button for each one.

There is probably loads of other stuff. I’m currently aware of a defect in the contact loading if you have more than 100 contacts. will look at fixing that shortly.

Oh, and fetching tweets/mentions and profile info all have a retry loop that after any failure waits 1 second, then tries again. This hopefully smooths out a lot of the transitory type errors that you get with network blips.

0.3.5-3 – a collection of small fixes

0.3.5-2 – some fixes to remove stuff from package that shouldn’t have been there. some extra error catching code around config loading and checking for theme existence

0.3.5-1 – Allows fixing of rotation mode in either portrait or landscape in addition to auto mode. Adds some error handling for ‘bad status line’ errors from the httplib. Adds ability to scroll through tweets using up and down arrow (landscape mode). Now requests up to 200 tweets since the last received tweet. (I thought using ‘since_id’ would basically do that anyway, but apparently it still defaults to 20…which doesn’t make sense to me, but there you go)

﻿0.3.4-8 – Update to touch theme icon to fix stretching in the user history icon. Fix to persisting gestures settings now that you can also persist notification choice. Witter not checks if it already received a tweet and doesn’t add duplicates. this allows the search view to retain history when you refresh to get more tweets, and means you can change search strings and pull new stuff on top of the already received results

0.3.4-6, 0.3.4-7 – fixing the oauth configuration dialogs that I broke a few versions back. Also added configuration to allow users to switch off the e-mail style notifications.

0.3.4-3,0.3.4-4,0.3.4-5 – I’ll treat these together as there were a very quick succession of little tweaks, after updating to PR1.2 on my n900 py2deb got re-broken and my bug tracker link was failing in the package. So that was fixed, update the version number to report at 0.3.4, and thanks to some hints provided by others, the on screen keyboard in portrait mode now pops up when you tap in the entry field, and disappears if you scroll. Also the buttons are now even sizes rather than relative to the letter size.

0.3.4-2 – Just a packaging update to include the dependency on python-dbus which was causing witter to fail to start for some people.

0.3.3-8 – added new style retweet under ‘RT’ action button as opposed to old style retweet

0.3.3-7 – adds ability to switch of swipe gestures in preferences (some people find they accidentally switch timeline views too easily) also added a locale setting on the hope it might fix some peoples timestamp problems. Initial support for starting a connection if none exists, currently it starts, but not before witter fails the connection is was trying. not sure yet how to make witter wait for active connection

0.3.3-5 & 0.3.3-6 – added support to persist timeline/mentions/dms, stores the last 20 in each of these and reloads them when you start again.

0.3.3-4 – full auto-rotation support, no longer need to hit ctrl+shift+r, icons are resized to fit in portrait. new theme ‘touch’ courtesy of biggzy on t.m.o.

Whilst I’m adding images, here is the monochrome theme

0.3.3-3 – fixing defensive code around avatar loading, loading retweets in timeline, fixing load more mentions. put following a user on a thread, so their tweets can be loaded into current timeline

0.3.3-1 – witter now remembers the last tweet and only loads new ones between runs. also mentions/dms get better notifications.

Notifications took ages to figure out, the documentation and examples are non existent. Currently you get notifications for mentions and dms, that vibrate and leave a persistant yellow notification like an e-mail. They also start the led flashing blue. currently no sounds. And all other timelines are as before.

This version also saves the last id received for main timeline, mentions and dms. On reloading witter it will only receive new tweets (rather than always just loading the last 20) In the future I may locally save the last few tweets to restore, so that the interface doesn’t come up blank if nothing new has happened.

I realised in investigating the issues brought up by 0.3.2-0 that I had previously been sorting twitter id as a string rather than a long. This had been working well enough to throw me off, but having odd results for some tweets and people that meant the sorted went off. Having noticed this I have now fixed it to store the long ids as floats (because for some reason using a long in the liststore still didn’t like being given a long) This appears to be working

Also fixed sort order for the friends view to be alphabetical by friend name.

total time: 3 hours of painful ‘value not valid for column’ messages trying to put a long into a long column…what a fool, I should have realised I had to store longs in a float column.

0.3.2-0

I switched the sorting to be based on the parsed timestamps rather than the twitter id, this appeared to work, but failed to sort newly arriving tweets into the correct order at all. It also broke a few people from using witter at all.

0.3.1-10

Added ‘theme’ support, or at least the ability to support different icon sets. Anyone can now create a set of icons under /opt/witter/icons/<name_of_theme>/

and it will become available for selection in the witter preferences section under theme.

the names should make it reasonably obvious what the icon should portray. Such icons sets could be packaged and installable independent of witter itself, they just need to place the files in the right location.

0.3.1-9

Minor fix that stopped first time users getting set up properly.

0.3.1-8

The buttons that were generated for each mentioned user, could sometimes make for a very crowded and difficult to read actions panel. If there were more than about 4 people. the buttons would go off the screen and generally not look right. This version puts all those options in a second sub window of the actions window, under a ‘mentioned users’ button. The layout is more obvious and should scale better to large numbers of mentioned users.

put guard against avatar urls containing non-ASCII chars, a the moment htis just means Witter doesn’t fail, currently it doesn’t successfully load avatars if the url has non-ASCII chars,

Also put a minor tweak to turn &amp; esacaping back into & in tweets

0.3.1-4

Fixed replyall to not exclude the sender of the tweet, and make sure it cleared before building new reply all string.

updated twitter oauth to fix follow/unfollow problem, which was actually a broader problem about using GET on every request

0.3.1-3

Added @user button to action set, also added a ‘translate’ option that opens google translate in a browser passing through the tweet text. At the moment it is hardcoded to translate from auto to English. At some point I might make this configurable so you can choose your own language to translate.

Timespent about 1 hour

0.3.1-2

managed to miss ReTweet when I moved actions to a stackable window, this just adds it back in

0.3.1-1

faster than I though, I switched the action buttons when you double click a tweet to arriving on a stacked window rather than overlaid buttons.

time taken: 30 mins

0.3.1

ok, so after about 4 months of saying I wasn’t going to, and generally complaining about the amount of time and effort it would involve. Here at last is avatar support.

Additionally I’ve made the 140 limit a ‘soft’ limit so that you can go over if you like. twitter should truncate as it sees fit, but it might help in editing a tweet to be able to go over.

This release took me about 9 hours. Initial avatar support probably only took about 30 mins of direct coding, but coming up with a strategy for caching images and reloading etc, took a fair amount longer. plus all the reading and fixing of other problems.

Avatars are loaded once when it first sees someone. Then again every 10 times it loads a tweet from an individual. The idea is the more you see tweets from someone, the more up to date their avatar will be.

I also fixed the oauth configuration after a bug introduced by adding multi-account support.

0.3.0

For this release I’ve bumped up to 0.3, as I’ve done a massive restructuring job. Moving away from the monolithic code base it was, to a (slightly) better set of ui/controller/account classes which hopefully paves the way for me to try switching out UI components a little easier. In this release what it has let me do is enable…

Multi-account support – You can now create multiple accounts, with twitter/identi.ca or any other twitter compatible service. And switch between them. Currently they are managed very separately. You simply go and choose to ‘activate’ the one you want to work with.

This release has taken many hours, I’m guesstimating 30 hours at least. Many of which sadly were going down dead ends. I had hoped to use pickle to simplify my persistance of account info, but I just couldn’t make it work.

For the average person there is no reason to upgrade to this version, and plenty of reasons to hold back. So much has changed I can’t be sure I’ve not broken something subtly. So if you are not interested in muti-accounts, then probably safer to steer clear for the moment.

0.2.2-6

Switched the way bit.ly url expanding words, instead of replacing the bit.ly short url with the expanded form in the tweet, now it expands the url and pulls out the domain name, which it puts in brackets after the bit.ly url, eg:

There is also code to remove the expanded info when you hit retweet. I think this is a better system than the first version.

also contains some sundry fixing

time spent: approx 2 hours

0.2.2-5

Bit.ly support – under preferences it is possible to specify a bit.ly uid and api_key which then allows witter to do 2 things. Firstly if it sees a url of the form http://bit.ly/something then it will automatically call bit.ly to expand the URL (I’ve not decided whether to leave it this way, but I generally don’t like clicking on shortened URLs if I have no idea what they lead to. So I want some mechanism to preview the real URL.

Secondly there is a new menu option called ‘shorten url’ which brings up a window that lets you paste a URL into an entry field and hit a ‘shorten url’ button. This gets bit.ly to shorten the url and pastes the result into the normal tweet entry field.

Combine the bit.ly support took about 4 hours to add. I am making use of a cut of a python-bit.ly library that already existed, but that code is fairly simple. At some point I may investigate whether I can get an id with bi.ly that would allow witter to use it, without the individual users having to have an id.

Additional I re factored the whole preferences dialog into a stackable window, and changes all the number editors to touch selectors for refresh rates. This allowed me to add the bit.ly credentials and a place holder for some kind of theme support. It should bemuch easier to add extra configuration to this section now. I’ll probably end up moving the colour tweaking into this preferences page also. But haven’t gotten around to it yet. This refactoring took about 4 hours.

0.2.2-4

With many thanks to pycage, author of the very cool mediabox. Witter now can ‘zoom’ in and out. That is the font size can be increased and decreased dynamically by using the rocker button on top of the N900. It was not at all obvious how to do this and I spent *hours* looking through documentation and google trying to find what I needed. Until I realised that mediabox was also python and was clearly capturing the zoom buttons. pycage was kind enough to paste the relevant piece of code into a response on t.m.o for me. And with that it took about 30 mins to implement, test and figure out forcing a redraw.

0.2.2-3

Doh!, turns out I was obviously tired when I uploaded 0.2.2-2 and I had a mismatch between the code and the gtkbuilder .ui file. This caused witter not to start up at all.

0.2.2-3 fixed this issue.

0.2.2-2 – broken – see above

Lots of people were complaining that they didn’t like the blue background, so I decided to implement the ability to configure it. Currently it’s fairly ugly in the sense that there are 2 buttons in the menu, BgColour_top and BgColour_bottom

each of these takes you to a colour picker which itself seems to work a bit weirdly, you have to set a colour in the empty palate section, and which ever one is selected when you hit ‘ok’ is set as the colour for either the top or bottom of background gradient.It took me about 2 hours to implement this, it’s unlikely to be made a great deal easier or nicer to do, since it’s not something I expect to do often.

Colour changes are persisted so you won’t lose them when witter closes.

Whilst I was at it I persisted the font size. I had hoped to be able to use the volume/zoom rocker button to allow font to be increased/decreased. However I cannot for the life of me figure out where to hook onto those events. So for the moment it ends up as a new value in the config file.

After running this version once, and closing. go look in /home/user/.witter

It contains the colours and the font size, so you can just adjust them there.

Overall this version took me about 4 hours including time wasted looking for information I couldn’t find about hardware zoom buttons

0.2.2-1

Lots went into this one so I figured I’d up the .1 to a .2

Icons! – All the views now have icons associated instead of words on buttons. Each icon for a view has an on state and an off state, so you should be able to tell which view you’re in by the active icon.

I used inkscape to do all y own icons. I am not a designer so they’re not that good. However I’m hopeful that someone that *is* a good designer can easily make a set of icons of the right names and it will be a drop in replacement.

plus20.png, plus50.png, plus100.png, plus200.png – fetch an additional number of older tweets as indicated by number.

All tweets now show the ‘From <source>’ text next to the timestamp

New UserHistory view – In this view you can enter a username in the entry box and hit the refresh button and it will go and find the last 20 tweets by that user. Alternatively you can double tap any tweet and it will provide a History button for every user mentioned in the tweet, clicking those will take yout to the user history view and load up the users tweets.

New ReplyAll button – just inserts all the usernames found in the selected tweet into the entry field with spaces between them

@ user buttons, – for any user mentioned including the author you get a button which just fills their name in the entry field. This is different to reply_to since it does not link your tweet to the one selected.

Get older tweets! – in the main timeline (only here at the moment) if you want to go back and get more older tweets, hit that + symbol in the top icon bar, and you get a pop up with +20, +50, +100, +200, these do as you might imaging, fetching tweets older than the oldest one currently loaded. up to the number requested.

Notes– This version comes with it’s own verison of the python-twitter library. It really ought to use the one that is available in the repos, but that is based on the last versioned release of python-twitter from jun’09, and I needed features that were introduced to the source after that. Ihave asked the python-twtter people to cut anohter update, but couldnt be bothered to wait. Also I made an additional fix to support max_id on an API they hadn’t added it to yet. Again I will contribute this in time, but I didnt want to wait for that to filter through.

Also, follow and unfollow both currently rely on having got basic auth settings configured. For some reason they seem to fail under oAuth using python-twitter, and I’ve not figured out why yet.

FullScreen/window – there is now a specific button to do true full screen, which drops the title bar stuff etc. Consequently i no longer have witter remove all controls when you scroll, so you should always have the top icon bar, this helps you see which view you’re in, and gives you access to the button to come out of full screen again.

removed trends/search buttons from main menu as now directly available through on screen buttons.

Removed follow for authors of tweets in your timeline, since you already follow them

removed unfollow for mentioned users. Tyring to save space and it seemed a less obvious use case.

Probably the most time consuming part of this version was the icons. I had to learn how to use inkscape and demonstrate my inability to draw. Then code all the additions of icons and make sure the state transition between on/off properly as you switch views etc. probably spent 6 hours or so drawing icons

Adding the user timeline was probably the single biggest change, but probably only took about 2 hours.

Getting the right set up of dynamically generated buttons when you double tap took about 2 hours, and may still be wrong. If you double tap on a tweet with lots of mentions then it will probably over stuff the view.

If anyone feels like doing a nicer set of icons, let me know. I may even look into some kind of theme management that would all you to switch easily between different icon sets. We shall see.

0.2.1-8

Changes – fixed a regression in the friend and trend view that cropped up when I fixed a problem with the difference between an automatic background refresh versus a manual refresh.

Time to develop: 15 mins

0.2.1-7

Changes – Changed the tap’n’hold menu for actions to be a double-tap which brings up a set of buttons. Hopefully this is much more finger friendly than the menu. When you double tap on a tweet, the buttons pop up, and the pannable area attempts to scroll to keep the tweet visible above the buttons. There seems to be a glitch with this if it’s the bottom tweet, but generally it seems to work. If there are URLs in the tweet, you dynamically get buttons to launch the URLs.

Time to develop : about 7 hours went into this restructure

0.2.1-6

Fixed a bug in the dmrefresh code that if activated stopped witter from exiting cleanly. – time to implement : 2 mins after a user sent me the logs of their problem

Also tried to force the icon to retain it’s transparency again.

0.2.1-5

Switched browser launching from using ‘webbrowser’ module to using osso context to run the osso_browser. Time to implement : 10min

Although launching URLs always worked fine for me, some people inexplicably could not get it to work. Frustratingly I narrowed it down to just one line of code calling the webbrowser module, which worked for me, but not for others. With no output or errors to go on I was stumped. But having found a new way to launch the browser I’ve switched to that, and early reports indicate this now works more reliably for everyone

0.2.1-4

Changes –

OAuth support-Time to implement..about 12 hours excluding all the investigation I did the first time around.

You can now grant witter authority to access your twitter account via OAuth, there are those that will tell you this is very important for security, and much better than handed an untrusted application your user/id password, in case they do something silly (like save it base64 encoded in a file where anyone might find it) However I can tell you that OAuth support in Witter is entirely about my vanity/ego. By using OAuth when you post to twitter it registers as from Witter, as opposed to simply from the API. It makes me feel good to see my tweets coming from my application.

Not all methods use OAuth at the moment, for some reason the python-twitter library doesn’t like following/unfollowing people via oauth, so this currently still uses the basic auth credentials until I can figure out why.

Also twitPic needs me to give it your twitter login to post pics. I may investigate alternatives that work nicely with oauth.

Busy indicator– time to implement, I daren’t figure out how many hours I spent trying to figure out how to do this, and failing to find a solution. Until mwerle, author of mwTube pointed me in the right direction. After which it took about 15 minutes to add the code.

This allows witter to show a little spinny thing to show you when it is busy doing something. this tiny simple thing provides a great deal of usability in terms of feedback from the interface.

Spurious fixes – thrown in with this release are a bunch of other checks and guards against errors I saw pop out whilst I was testing. Additionally i fyou press any key the tweetbox now grabs focus, since I was getting tired of finding I hit a key to bring the controls back on screen, then selected the entry box to type something.

—–historical information——

so in extras-testing under internet-network is now witter 0.1.1-2

in extras-devel is 0.2.0-1 which adds threads and auto-refresh of feeds.It also adds support for multiple search terms separated by commas. Search terms are stored/retrieve between sessions, so you can keep a number all refreshing at a set interval

so, what is it? it’s the modern day hello world..it’s yet another twitter client.

mostly written just to educate myself on how to go through the whole process of develop and release.

it’s not pretty. but it has some useful functions.

failings first…

It is only basic auth. it stores the credentials in a file in .witter

it does base64 encode the info, but this is not to be confused for security.

it does however use https so at least comms are encrypted

now for what it does do…

It obviously gets your timeline.

you can tweet!

if you write input you can also go to the menu and select twitpic, then go select an image. when you hit ‘twitPic!’ it will send the image and whatever text was in the tweet field.

when tweeting normally there is no real notification of errors in parsing etc. (except in the terminal) however if it fails to send, it will not blank the text you’ve entered. so if it goes blank, all is well (in theory). Also normal http errors will pop up in a dialog. not exactly friendly, but it won’t hide them.

it has a sort of ‘tabs’ ideas. it has the ‘timeline’ for your normal view.

it also has a mentions view, when you refresh it loads the last 20 mentions of you.

it has a direct messages view which loads last 20 views.

it also has ‘search’ in this view if you put a search term in the text field and hit refresh it will return the top 20 search results.

and friends view will load the first 100 friends (no paging support yet)

if you load friends, it uses that list to auto-complete when you @reply someone.

under the menu it also has a trends view which will let you refresh the current 10 trending topics

and a public view, which loads just the public timeline.

It supports auto-refresh on the main timeline, mentions, direct messages and public timeline. The properties tab allows you to individually configure the rate of refresh, or set to 0 for no auto-refresh.

if you tap-and hold on a tweet, you get a context menu which will let you launch and URLS from that tweet, and some options to follow or unfollow the user.

all this should work on the n810 and the n900

though the n810 version looks slightly different the kinetic scrolling is courtesy of mokoui library, but it’s not as nice as the hildon panable area.

it also supports ‘gestures’ so swiping left or right will switch views through thedifferent ones availiable.

when you start scrolling the controlls dissapear to give all the screen space to tweets. you can get controls back by pressing any key or by swiping to another view

The main difference since the early version is the custom cell renderer which makes it look more ‘pretty’ Basically I had to write code which would drawn the rectangles and the rounded corners, and then render the text inside.

Initially I made the mistake of using cairo to render text, since that is what I found first. However if you use cairo you actually have a much harder job than you need. You have to figure out how to render text by calculating it’s width, and cutting it into lines, and figuring out line placement etc. On top of all that you don’t get any rendering of non romanised fonts.

So after much digging I found out how to do the same with pango, using a cairopango context. With pango it ‘understands’ layout to an extent, so you can specify a wrap width, and tell it to word wrap so you don’t get words split on line boundaries. It also nicely renders non-romanised fonts as you can see here.

Share this:

Like this:

I have one problem is that my background is black, so the black text doesn’t go to well, I’m using one of the “LCARS” themes. It seems to be an issue when the app doesn’t do what the theme suggests, but even just an invert option would solve that.

On the N810 I can’t get get it to run from the menu… from x terminal it works ok.

Is it possible to get it to cache tweets? Maybe even remember the last selected tweet when re-loading app?

yeah the obeying theme thing is something i should figure out. effectively it’s hardcoded to default themes on n810 and n900. i hadn’t considered an invert option. that might be simplest.
I have the same launch problem on the n900. I’m trying to figure out how dbus works.

cacheing tweets is possible. though you probably wouldn’5 want it to keep a local copy of everything that continually grows. i did think about storing the latest_id to attempt to r_load from where you left off.
probably ought to fix the more fundamental theme and launching problems first. :-)

FYI, I just submitted 0.1.0-4 to the autobuilder, it contains the ability to invert the text between black and white. and it saves your choice on exit.

also I think I fixed the application launcher issue. Turns out there are some settings in the witter.desktop file which expect to launch a certain way. not sure what that is, but without those values things seem to work just fine.

Hi there Daniel i have downloaded your app and enters my email and password in to account set-up and done the activation but when i get back on the app the menu shows but none of my tweets just has the load sign in the top right

ah-ha! that means i missed a depenandcy declaration on python-hildon.
I’ll fix that. but in the meantime yo can fix it in a couple of ways. the easiest is to install any other python app that does have its dependancy set right. mething like gpodder.
alternatively you should be able to
$ sudo gainroot
$ apt-get install python-hildon

but you might need to install something to get the gainroot command.can’t remember what though.

or just wait. and at somepoint I’ll upload a new version with it fixed.

To be honest that depends on how easy it turns out to be. on the n900 it was trivially one line.
I think on the n810 it means bringing in an extra library etc.
the diablo version doesn’t have my focus at the moment, since the n900 is shiny and new…;-)

1) I don’t know. i haven’t written any special code for it. so it depens at what level the proxy settings take effect.

2) in the current version there should be a menu option, cryptically named ‘toggle serviceType’ this swittches to using identi.ca instead. the support is very primitive. I don’t use identi.ca so I’m waiting for some to confirm that works at all. if so I’ll think about a better way of integrative support

assuming i can figure out how to launch a url based on a direct click, it would drive the same code to open a browser. so the problem would likely still exist. i’ll try to add some debug around the launhing code and maybe get some ideas as to what is failing

it exists in the extras-testing repository for fremantle. since it is under heavy development it is not yet in the main repo.
search talk.maemo.org and you will find details of the extra reposiitories. just bear in mind that things from extras-testing may still have bugs.

eg there is one line of code between the two lines of output in the terminal. and it works for me, and many others. so I’m afraid I have no clue what on earth would make it fail for you. I also have no idea how to get any more information, since it clearly isn’t outputting any errors. Sorry.

I’ve entered both user name and pwd correct multiple times without success. Twitter even locked me out for witter sending the wrong creditials too many times. I’ve even changed my pwd to something smaller in case the app has some kind of character limit, but still no go.

here is an annoying issue i haven’t figured out yet…the password field auto capitalises the first character. which can cause problems if you don’t notice it happen. i don’t know how to stop it doing this yet.
if this is the issue just enter an extra character as the start of your password then go back and delete it before hitting ok.

are you getting 401 not authorised response?
are you sure you didn’t get caught with the password field auto-capsing the first letter of your password?
have you confirmed your new id/pwd word with any other app?
if the answers to those are ll yes, then I’m not sure.

glad you like it. the twitpic thing currently makes the (perhaps poor) assumption that you are writing a comment to go with it. so it expects you to write your twitter, then select picture so when you hit ‘twitpic’ it posts picture with comment. if there is no comment it does nothing. and i’d forgotten untill this reminder because i learned how to do nice notifications sometime after I wrote that function.

I’ve tried to write a tweet and after that setect twitpic! selected a picture (776kb) and pressed twitpic!> unfortunaly without any result, the twitpic page will stayontop and nothing happens.
Its probbably stil me doing something wrong, but have not figured out what.

Firstly, very nice app, great start…
Even in it’s infancy, it’s far better than Mauku, and does far more than the Twitter Plugin ever could…

My thoughts though…
– The kinetic scrolling is too jumpy and too slow, needs refining…
– A ‘More’ button is needed, as displaying only the last 20 tweets is a massive restriction…
– The friends section, struggles to display all the content…currently you have a friends name, and thier latest tweet displayed, but if someone posts a large tweet, it does not all display.
– A way to modify the theme would be appreciated…the current blue would not be my first choice.
– Witter currently notifys when there are new tweets, but it is also notifying our own tweets as new tweets…a bit redundant.

Hello, trying out Witter on my new N900 and looks good so far. I have spotted two issues I thought I would report.

1. The password entry field “capitalises” the first character so if your password starts with “a”, it enters “A”. Also the PIN field for Twitter OAuth is set to alphanumeric when PINs are numeric.

2. If I enter some menus, I end up with just the title of the window at the bottom. For example, start Witter, go into Preferences, go back, go into it again and I cannot see the preferences any more as they’ve gone off the bottom of the screen. This doesn’t fix itself until you restart Witter.

Also, can you confirm if Witter is using SSL for it’s connections to Twitter? I don’t like the idea that my username/passwords or any other data is being sent in the clear.

Would you be interested in adding publishing support via Pixelpipe as an option to Witter? By utilizing Pixelpipe you’d be able to expand the text publishing to over 25 services (including Facebook) and even more services when you include a photo with the post.

We support the Twitter API & log-ins and TwitPic API for media posts so the integration should be pretty effortless. Get back to us if you’re interested and we’ll get you setup with an application key and the API endpoints you’ll require.

it occurs to me that user history will only work with oauth. have you configured oauth?
i should have thought about it. at somepoint I’ll look at fixing that. unless of course you are using oauth in which case I have no idea why it’s not working.

the identi.ca switch is not really intended for mainstream use. it won’t work at all once you use oauth.
i intend to do a big refactoring of account management to allow proper support. but in the mean time identic.ca is pretty much unsupported.

Thanks for your quick reply! That explains it all. Well, personally, I’d love to see Witter supporting identi.ca (or status.net, as it is syndicated). I’m mostly using identi.ca and the N900 still lacks a good client for it. Mauku works, but lacks basic features like a tab for @replies.

Maybe it would be possible if you would give the user the possibility to change the API-URL with Twitter being the default. Gravity (for Symbian) did it like this, as well as Twibble.

Anyway, for the moment, I’ll just sit and wait for the things to come. =:-)

are you using basic auth or oauth? i believe it’s broken for basic auth for historical reasons. in either case i’m still finishing off s big re-write/restructure that should resolve the issue on next version.

I just noticed it yesterday, when pressing the +20, +50 button, the activity indicator showed up, but nothing else happens. Today when I press +50 in my timeline, a few tweets are being loaded, but then it stops, again with a running activity indicator.

Maybe there is something wrong when fetching some avatar pictures, so that it chokes on those?

That is indeed the way it works at the moment. It’s intentional because a) search results don’t contain avatar urls, so I would have to spawn a new request for every entry. and b) I cache icons and if you store every icon of every user that ever shows up in a search, that might not be ideal, where as if I stick to people you explicitly follow or who message you, or who you chose to lookup specifically, then those are the ones you are more likely to be interested in. And not fill up space with lots of potentially one time viewed images.

Have just installed and really like it. Have been using Mauku, but much prefer Witter which has a great feel and the usability and avatar support is great. Will continue to use and grab updates when made available.

you can make it disappear by manually refreshing a feed. However I removed it because it was costing processing everytime you scrolled at all.
I wanted to avoid any unessary code running just because you are scolling up and down, so I removed it. I’m not sure if it’s worth replacing.

daniel, thanks a lot for this very nice twitterclient. As a twitteraddict I got a bit lost after I switched from nokia E90 with gravity to N900, but Witter did the trick and I’m very happy with it ever since. Keep up the good work and consider placing a donate-button on your site, I surely would donate some cash for your efforts.
-ivo-

I assume that means you have versions from extras-devel. there has been a lot of churn recently as I’ve tried to make timestamps work properly and show times correctly for the users timezone. The latest version 0.3.1-16 updated this morning seems to be working for everyone.

Can we get Mentions to show the list as they do in the web based twitter? Mine come out in a sorting that I can’t figure out. All I know are the old ones are not at the bottom, or top and neither are the new ones. they’re all mixed up.

which version are you using?
all of the views are sorted by the id number of the messages. the assumption being that larger numbers == newer messages. but for some odd reason that doesn’t work for some people on mentions. it works fine for me.
in anycase I’ve started work on timestamp handling to ultimately sort by date.

please run witter from xterm using the command: run-standalone.sh python2.5 /opt/witter/witter.py
this will produce diagnostic output int he xterm session which you can send me to let me know what is going on. I suspect there is going to be another weird variation on timestamps

run witter from the commandline to get more diiagnostics. there is deffinately still an issue with 0.3.2 but it does load tweets for me, just not in order after the first set.
alternatively uninstall, disable extras-devel, and install from extras-testing the previous version.

the version of witter in the testing repository has the timestamps processed correctly.
as for more tweets there is currently nooption to get more by default, only the plus buttons to retrieve more on request.

1. tag-search / highlighting in twwets
2. adding current gps-position to tweets
3. show position of tweets withm e.g. google maps as little map if the tweet is displayed in detail
4. the search of mentioned users dosnt work korrect. i got a tweet where the mentioned user name gots a : at the end cuz he was rt. so the search cant find him cuz of the : at the end :)

4 is something I’m intending to fix soon-ish. though it would be helpful to know what chars are not valid in a username.
2,3 are interesting and I have considered them. maybe at somepoint i’ll have time to investigate
1 I’m not sure what you mean as such, i guess i could highlight the search term used in returned tweets

I’m using for two days now and I want to give some feedback of things I noticed up to now:

1) In the Preferences there isn’t a unit (like minute) shown for the refresh time so I had to guess what it is.

2) If I guess right the refresh times are minutes so it would be nice if it would be possible to set them e.g. to 1 minute instead of 5 minutes as shortest refresh time

3) When you start witter you always get a notify, that there are x new Tweets/DMs etc. – although you already saw them. It would be nice if witter would just notify the “really” new tweets since the last start of witter. If you start witter just for a short time to look what’s happening right now it’s annoying to get notifications for tweets you already saw.

Hi Daniel, i installed Witter in my N900, i think is the best twitter app right know for the N900. I know you are working hard to do the best on witter, theres some thing i think can be improved, is the general smooth when you are scrolling the timeline i notice is not smooth, is a little heavy, it’s my perception, maybe improving the performance in general make it perfect. I just use the twitter for post and read. thanks for this Great App! BTW!.

1.
like said by ColaCheater before, it would be greate to see what tweets realy new and what tweets i allready read (on my pc i use twril als client, ther is a button “mark all as read”. new tweets where displayed with a star in corner, so i can see, this is new to me ;) )

also it would be more performant, if you save recieved tweets on the phone and only pull the latest tweets from the latest recieced id up instead of call all tweets.

2.
the time under a tweet is the time i received it! not the time the tweet where posted.. this is not nessesary i think, more interessting is “when is this tweet posted” !

3.
is it posible to get witter in portray-modus?
this would be realy good to read the posts :D

1) persisting tweets is certainly possible. but raises a question of how long to keep them? an alternative option would be to store the last ids, which it does do during operation, and reload from that point.

2) that only happens when witter fails to parse the real time of the tweet. please run witter from x-term like this: run-standalone.sh python2.5 /opt/witter/witter.py
This will give lots of output whilst witter is running, there should be some fairly obvious errors about failing to parse timestamps

3) apparently it can be forced into portrait on pr1.2, however I’ve done no investigation of this yet.

Hello!! Congratulations! It is a great APP!! I like the new release, wich remember the last tweet and only loads new ones between runs, but I will wait until you release the version that saves locally my tweets (specially mentions and DM)!!
You are great!
Three suggestions for next releases:
1. When you select a tweet, in the mentioned users, we should have the capability to open the user profile and see their followers and following
2. Geolocation
3. Following tag to see the people who are following me

some reaonable suggestions. a few people have asked for geolocation, that one could be tricky. the others i may look into sooner. first have to persist some tweets. got caught up tonight playing with notification callbacks and portrait mode support

You need to configure witter with OAuth to get this behaviour, it will then show your tweets as from ‘witter’ (which witter will colour yellow) This is a requirement of Twitter, for all new clients they are only allowed to show a client id if using OAuth. This is annoying because it did rather raise the requirement before I could implement this, however if you search twitter from the n900 for terms like n900 or #witter you will see at least some tweets showing from witter (including mine)

hello again. I am having some troubles using version 0.3.1-9. Neither the tweets and mentions don’t load all of them, just a few of them. What could be happening? I tired newest versions and have the same problem. Thanks

thx for the tip :)
but you’ve got some improvments on that to do ;)
the text of each tweet isn’t scaled correct on rotation. half of the tweet is going outside the screen. after scale the text-size via volume-key or minimized and then return to the app it’s displayed corret.
when rotating back to landscape-mode the same. only half of the available space is used to display text.
(hope i have explain it correct -.-)

there is work to do, but that should work a little better than that, if when you switch modes you swipe from one timeline to another and back does it then look right? maybe i just need to force a redraw event

Oh, oh… timestamps seem to be broken in all the more recent versions. The last one that worked for me was 0.3.1-9. As several people reported that timestamps worked ok on their systems, maybe this has something to do with the language/country setup (german)?

it is deffinately a locale issue, what i haven’t figured out yet is why my timestamp pattern doesn’t match for some people. it’s particularly hard to diagnose. all i can do is try to add more diagnostic output.

Hmm, this does not look good. You get your timestamps in the usual strftime format, but you alwas have it in the international/english format! But the strptime your are using to parse these is influenced by the locale setting. This means, for example, it does not recognize day names etc., as these are expected to be in the correct locale form. A quick and dirty fix for this would be something like:

import locale

locale.setlocale(locale.LC_ALL,’en_US’)

putting up at the beginning of account.py. Then the timestamps look ok. I don’t know what will get broken by this, though ;)

Once again, great update Daniel! timestap problem solves with 0.3.3-9 update. Now I can say I dont miss at all gravity for symbian.
If I may, i wold like to suggest three thinks:
1. One icon to access My Favorite tweets
2. Save more than 20 tweets, dm and mentions
3. A home widget for witter (the one we can download from ovi store is bad!)

Hi Daniel, I’ve been enjoying your great app for quite sometime.
With the three latest updates, though, I cannot run Witter anymore, it keeps crashing when opening.
I tried uninstalling and reinstalling, but to no avail: it still crashes while opening.
I’m no Linux expert but if you don’t mind telling me how to do it I can try to send you the log with the errors, if any.
Cheers

one of the last few versions had a bug which could corrupt those files. it won’t do it any more but you need to manually clean them this once.
ithis is why extras-devel is not allways a safe place to get updates from. :-)

This doesn’t help for me.. Even after removing all /home/user/.witter* dirs it still crashes at startup. There’s an error about missing dbus import (like 41 in witter.py) if I execute from the command line.

I’m guessing that this happens if you request ‘more’ tweets after having reloaded from a state with saved tweets. At the moment witter doesn’t figure out the oldest tweet from the stored values, so if you ask for more the first batch will be the same 20 that were stored by witter between runs. I will fix this at some point, but for the moment that’s how it is. As for the timeout, that just happens sometimes, Twitters API is not garunteed to respond every time, http is not a reliable transport. I support I could try to hide the error, but if that’s what happens, then witter just isn’t given a response from twitter in 10 seconds of waiting (which should be plenty of time)

I found a great update the portrait mode in keyboard. I am wondering… is it posible to get it as an alphanumeric keyboard? you know: number 2, letters a b and c into one key, and so… It would be easier to write in portrait mode for fat fingers

I was used to Gravity on the N97 and so far the best twitter program for the N900 seems to be yours, is there no way to have my ‘searches’ shown all the time, N900, Mountain biking, Nokconv for example, as I cant see these and so I can’t see the latest tweets only the ones that I write

When I hit the Ok button, nothing happens, I have the white rectangular bow with the seven digit number in it and the Ok button still active , it doesn’t ‘go away’ I have no error messages, the twitter credentials window just sits there

Note that I tried adding a second account and have the same problem, also sometimes when coming back to the twitter credentials windows after being given the authorisation code I have the twitter credentials title at the very bottom of the screen and cannot see the white rectangle box to be filled as its below the screen,I can see just the title

that just looks like one of the urls used in the authentication part. i would need to see the xterm log from running witter to see what is going on. i may have just broken the signal handler for the ok button.

Hi Daniel,
I’m still having problems setting up the witter app. I get as far as trying to Configure Oauth, it takes me to the twitter website to ask for my permission to allow witter access, then gives me the PIN and tells me to go back. I would go back to the witter screen asking” authorise with twitter, clicked OK button asks for twitter credentials, I would type in the 7 digit pin from twitter and the OK button doesn’t work for me. Any suggestions? I can’t get past the OK button. I won’t let me continue.

i may have broken something in extras-testing. could you try with the version from extras? eg uninstall, disable testing/devel, install witter again. if it works then i know what i broke and you’ll be able to upgrade again and it will keep you settings.

Hello – I love using Witter on my N900. One question though, is it possible to have a look at a specific Twitter list, or will it be possible in a future release. It’s such a good client, but I also like the ability to look at my lists from one of the top toolbar buttons.

Gravity on Symbiam using lists, this is by far the most important part of this program I think

what happens is : a list has left and right scroll bars to go from list to list, these list are stocked permanently so that you do not need to re input what you are looking for, but of course vcan be modified or added to,

Hope this helps

An idea what about the possibility of not showing images in the list that is shown from your search mode so as to gain screen space,

I am trying to use Witter with my own site (I have implemented most of the twitter API for myself) since it looks to be the only twitter client with notifications support. Will support for notifications on all incoming tweets be an option in the future?

Anyway, I finally figured out how to get it to log into my account : for some reason the first letter of my password was being auto-capitalized, so I had to type an extra letter at the beginning and then delete it. Now I see it hit the server at the right endpoint (in my logs) and it gets a 200 OK. The endpoint works with most other twitter clients I have tried (on my laptop/android phone), but with Witter it just sits there spinning. Even after my logs have clearly recorded the hit, Witter is still spinning and no tweets ever show up.

It appears that some tweets are getting cut off. In the cases the tweet cuts off there is also no date being rendered. I’m using 0.3.4-7. Same behavior was on 0.3.4-6. One common thing with the cut-off tweets seems to be that they have a winky-eye smiley ;) in them. Normal smileys work though, so maybe it’s something about the semicolon? Weird bug!

hey, glad you like it.
When reorting issues it’s helpful to let me know what version you have and from which repository. Since there are normally at least 2 (the one in extras, and the on in extras-testing)

1) yes the retweet button should fill the entry box with the selected tweet prefixed by RT. If it’s not for any tweet then I guess I’ll need you to run in the terminal (instructions top of page)

2) also odd, from my point of view the difference between these buttons is just a 20,50,100,200 in the right place on a call to twitter, my assumption would be that it is giving witter a wierd response. though I’ll try to look into it.

3) yup, if you have a bitly account configured it *should* find any bit.ly url and put the domain in brackets after it, eg;http://bit.ly/bSUw9j (danielwould.wordpress.com) I don’t put the entire expanded url, just the top level site name as that is mostly what I want to know. again, if this isn’t working for you then running from a terminal should give output that will help me understand why.

witter caches avatars to avoid extras downloads. every 10 hits on a given friend should force a reload of thier avatar. if you really want to force witter to pick up fresh avatars then you can delete the contents of /home/user/.witterPics/Twitter/*
but if you open the user in the user history view it should trigger enough fetches to update the avatar.

Any update on figuring out what is causing tweets that contain winky-eye smileys (or other semicolon-open-parenthesis sequences) cut off? Considering how common that is in tweets and direct messages, it’s a fairly major bug. I would expect it to be pretty easily reproducible and thus easily debugged.

I’m afraid I’ve been busy working, so haven’t looked at this problem at all. feel free to tweet winky-eye containing smileys at me on twitter (@danielwould) to give me a point to start from. but realistically I doubt I’ll have time to think about witter before Sunday.

I tweeted a test case with a @DanielWould mention. I also looked into what causes it and it actually seems that all that it takes to break things is a single semicolon. But what happens is that it first works fine when the tweet comes from Twitter over the network. But after a restart the cached tweet cuts off at the semicolon. Looking at the cachefiles (e.g. .twttertl) confirms that it has been cut off in the caching. Prior to the restart the tweet still looks fine in the UI so it seems that it’s the caching that is broken.

ok, thanks for digging a little deeper. i guess this means that it’s not as bad as it could have been, the tweet does display ok when you receive it.
it gives me a pretty good idea how to fix it. not sure that i will before promoting this ver to extras though. it’s not that serious a problem, and updating the version at this point resets the votes for promotion, so I’ll only do that for really bad problem.

Erm, saved searches on separate pages, no idea, I’ve given it no thought yet. It would require some reasonable change in approach I think to support that usage

When you say the vertical keyboard switches for the horizontal one. Do you mean the horizontal one shows up in vertical mode? I’m not sure I understand (I never have the maemo OSK enabled as I have a real keyboard for landscape use)

as for the cursor thing, I’ll see if I can reproduce that one

as for the tweet button on the search box, it is on my list to remove that for that view.

interesting, it looks like potentially encoding related. fast way to resolve temporarily is to delete the file that has cached the tweets. in xterm do:
rm /home/user/.wittertl
that will let you start up again. I’m not certain why witter has managed to store values with \n in which it should be parsing out at the point it writes the information.
I suspect I should create some failsafe code that will allow witter to continue even if this happens.

When I start to add a tweet without the physical keyboard open and the phone is in a vertical position, the onscreen keyboad opens, if you move the phone even a tiny bit the onscreen vertical keyboard (which is a querty version) will switch to the horizontal azerty version (I’m running a French n900 so azerty is normal for me)

Its just that there is no way that the vertical onscreen keyboard can bu used and that the key layout is wrong for my system

“Erm, saved searches on separate pages, no idea, I’ve given it no thought yet. It would require some reasonable change in approach I think to support that usage”

For me this has to be one of the most important needs, the possibly of see all tweets concerning one search by page

ah ok, the problem here comes down to the fact that maemo don’t provide a portrait keyboard, so it’s up to me to provide anything in portrait. Sadly I have done no work at all to allow localisation of any of witter, so no translations etc. and it didn’t really occur to me to provide the keyboard in any way that would be other than qwerty. And because this is just application code, that happens to work like a keyboard, the system doesn’t know not to provide you it’s own keyboard when it thinks it can. Weird that it’s so sensitive to being slightly off vertical. I have no idea whether it’s possible for me to prevent the system from launching it’s keyboard, which would at least let me stop the main problem.
Do you know of any python app with a portrait keyboard that doesn’t have this problem? fastest way to fix it is if I find an example somewhere.
only ‘solution’ in the short term is disable the main system on screen keyboard. I know that’s not really a solution if you need it in landscape

Will think about the search thing, maybe some over lap with the sorts of things I’d need for lists support.

not at the moment, i assume this would be controlled by a system theme.
in older versions it was possible to set the background, since i wrote my own cell renderer, but there where issues with that approach. i’ll have a think about what can be done, i may make it contollable from a witter theme.

Thanks. If I may give a suggestion: Black fonts over white background (or very light grey) will look pretty good. No other highlight but Bold Font for the Username for the one who post the tweet (avoid blue or other colors for other mentioned users, at least in timeline. You can use other colors when you click on tweet to get more options).

100 is the default ‘page’ size twitter returns to a single request. currently witter doesn’t support loading all pages. (mainly because i don’t follow that many people) but it is something i’ll try to fix at somepoint

I’ve been using Witter for a few weeks now, so far so good. I get the 400 error every once in a while, but after editing my account in the preferences it seems to be working better. Would be awesome if it displayed total number of friends and followers like TweeGo does. However I prefer Witter over TweeGo by a long shot. Witters interface is the best I have used so far on my n900. Thanks for the app, appreciate it.

so that’s slightly weird, I’m sure that twitters rate limit is normally more than 75. Normally I do associated 400 errors with users that have blown their API rate limit. Basically if you set timeline, mentions and dm’s to refresh every minute, then you would deffinately use up your limit every hour. Then have a period of time where you receive 400s, before it returning to normal for a while until you blow the limit again.
Is this persistently happening to you? do you have the refresh rates set too fast?

I think my refresh rates are set to 5 minutes, but I think whats causing it is when Twitter isnt responding or goes down, I may hit refresh multiple times waiting for new tweets. I will adjust the refresh rates and will wait for the app to automatically deliver the tweets to me rather than refreshing manually.

One other thing, I too have had issues with the twitpic and shorten URL. Every time I try and use it, the values are never delivered to the twitter entry box. It takes me back to my timeline but the URL’s are not in the twitter entry box. Any thoughts?

Firstly let me say great job on Witter, its the best Twitter client on N900. I have a few suggestions (hopes) that I would like to put to you, im sure someone probably has mentioned these before but sure here goes.

Twitpic:
1) When you go to attach a picture you should not have to navigate through all the system menus etc, it should just open the gallery
2) Even when I find the picture I want to tweet and select it Witter does nothing, is this a bug ?

My Version Of Witter:
My current version of Witter is 0.3.4, however some of your screenshots above look completely different to my, specifically the menu for time intervals etc, are you keeping a special version for yourself ;-)

Hey,
as far as twitpic goes, if I knew how to bring up a gallery view I would, hell even if I could make it work bringing up the standard maemo file dialog I would. It is potentially something that bears further work.
2) you must write your comment first, then go find a picture to attach, witter currently assumes no text in teh text field at the point you hit twitpic! is a mistake. I keep meaning to get around to putting a proper message pop up for that.

As for special versions, nope I tend to upload quite frequently, and any mismatch to screenshots is more likely the screen shot is out of date ;-)

are you saying witter receives 400 but mauku or other twitter clients are fine? or just that twitter.com is fine?
did witter ever work for you?
what refresh rate did you configure for your various timelines?
have you configured oauth? or are you using basic auth?

Thanks for the reply. Witter worked fine, but stopped (during the match NL-Uruguai. My Twitter-account works fine (from browser or Mac client), as does Twitter.

First I got repeatedly the 400 message, now it does nothing… That is, the wheel keeps telling that it’s connecting. No results.

I’d say removing and reinstalling might do the trick, but settings and accounts are not removed. Removing an account within Witter is impossible, as it wants me to deactivate the account first, but there’s no button to deactivate an account.

ah, now spinning wheel doing nothing is different to persistently getting 400. In either case witter stores all it’s state in some files in the /home/user folder they all start with .witter
As final resort you can delete all witters state (instructions below)
However first it would be helpful to me to understand what has gone wrong. if you follow the instructions at the top of this page for running witter from the command line then you will get lots of diagnostic output that will be helpful for me to figure out what has gone wrong.

Another alternative to wiping out all state would be to modify the account you have set up to some dummy setttings, then create a new account instance for your real id/pwd and configure oauth. Then you can switch to this as the active account (then you can delete the original) This would mean you’d retain any other settings.

and final resort…
if you open xterm, and do
rm -rf .witter*
you should delete all the witter state. be VERY careful, if you accidentally did rm -rf * it would completely delete everything in your home folder, you must make sure you are using ‘.witter*’ only ever use the * as a wildcard on the end of something unless you really want to run the risk of utterly destroying everything. you have been warned.
once done witter will start as completely new, and you can try configuring from scratch.

if the person is mentioned in a tweet, then double tap the tweet, then in the menu of options hit ‘mentioned users’ then you should find follow/unfollow etc for each user mentioned in the tweet
alternatively if you know the user name but don’t see a tweet, then go to the user history tab. enter their username and hit refresh.
then from one of the tweets do as above.
if they have protected tweets and you can’t see any tweet that mentions them, you’d have to use the twitter website.

ah, looks like you tested a bit of code that I was waiting to get tested. basically for some reason an avatar has been corrupted during download, now whenever you get a tweet from that person it goes bang.
temp fix:
open xterm:
cd /home/user/.witterPics/twitter/
rm *
this should remove all the corrupted avatars

Just added Witter onto my N900, and it already looks like a winner. When installing, I did find a small bug, though: in the Account Setup, when you Edit an account to add a password, I can see the first letter of the password getting capitalized before being replaced with a “*”. This of course makes it a bit hard to enter passwords correctly :-)

you need oauth configured to get tweets showing from ‘witter’. if you look in account settings does witter think it is configured?

as fo photo, witter caches images and rerloads if it sees more than about 10 tweets from a user in a given run. try loading your account in the userhistory view (just hit refresh in that view) and see if it triggers an update to your avatar.

twitter supports two kinds of retweet. the ‘old’ style where you prefix with RT but can add some comment addition. and the ‘new’ style where you don’t get to add comment, but twitter ‘knows’ you retweted. hence two buttons.
have you configured bitly account details? currently that only works if you have configured an account with bit.ly

witter caches the last 20 tweets in the timeline when you close it. when it starts up it requests all the tweets that have occured since the latest one in the cache. up to a max of 200. so you only get 200 if there have been at least that many since you used witter last.
this is not configurable at the moment.

witter will run in the background if you have it loaded, eg availiable in task switcher. it will pop up notifications for mentions/dms like e-mail does. but it isn’t always running like e-mail, it must be loaded.

If you switch off gesture support then you won’t get this (but you will have to use the buttons to change views), also in response to your previous comment, it does scroll off the top of the screen as you scroll down…so it doesn’t really take up viewing area.

In any case this is a dev update with just a few ideas I’m playing with, taking feedback as to ways to re-arrange etc. considering putting profile on it’s own top level page and having other views as stacked windows…not sure though.

witter loads up to 200 tweets, but only as far back as the last tweet it saw. After the first run, it should only ever fetch the tweets since the latest one it remembered from teh last run. Obviously if there have been 200> tweets since then, you wlll get another 200.

This version is in the extras-devel repository, it is part way through a significant set of changes. Consequently it is unstable. You should seriously consider not using the devel repository. The current failure is a dependancy that I forgot to add to the package scripts. it will be fixed in teh next update. But there is likely to be significant instability in the development version for a while.

I was havingh 400 and 500 errors and active problmes with my identio accounts so I deleted witter includin all .witter files

I Reinstalled the latest vesion but it was hanging at start up, guessing that this was due to lhe latest version

I disaballed extras-devel and reinstalled, I then setup my account including Oath etc when all was OK the reactivated extras-devel and down loaded the latest version, so it seems that I found the above bug as well :)

It seems that you have also a bug with second accounts and or Identi accounts, if you activate them you cannot dis-activate them and that is why I reinstalled in the first place

silly question, are you certain your twitter details are correct? did it load your timeline?
looks like i need to guard against a 404 when getting user data. but the 404 still implies it couldn’t find your user.

Hey Daniel, i really think your app is the best twitter app there is on n900.

but i have a problem. when i got my n900 the app started and i wanted to fill in the confirmation code (if i remember right) but i did something wrong so i closed the app and now the problem is for over 2 weeks.
When i open the app it loads and loads and then just closes automatically. i deleted the app and installed again many times.

My Witter does not start anymore. It closes itself after a few seconds.
I don’t know the version because it doesn’t stays up so long. It’s loaded/installed trough catalog extra-devel I think (it’s with the shift-up and shift-down thing in it)

I deleted the .witter files also and at least it does’t crash after a few seconds now.
However, after defining my account (100% sure it’s okay, 4x checked) it keeps telling me that: “Error retrieving tweets. Server returned 401: Not authorised:check uid/pwd”

First of all I deleted the .witt* files again because it didn’t allo me to change the settings. After that I define the account again with the twitter oauth validation and it’s working like charm again.

I have updated my witter on N900 to Version 0.3.6. Now I feel like it is unstable, I couldn’t open it successfully if I try to connect internet using my mobile’s 2G or 3G internet connection. Usually its get hanged.
But it working ok with Wifi internet connection.

I was trying to reinstall the app, but when try in unistall it shows a message Unable to uninstall ‘witter’. Some application packages are needed by other applications. An when checking details i got “Unable to uninstall witter. Required by application packages : levelball(0.0.7-9).”
levelball is another application is installed. When I try to uninstall it also showing similar error saying some packages are needed by witter.
Could you please let me know how can I solve it?

0.3.6 is unstable. that isx why it is in the development repository and not the testing repository.
i don’t knosw why there is any dependancy between witter and levelball, i don’t have that installed and I’ve never heard of it. sorry.

I do appreciate your efforts and you have created a very nice piece of software, which is why the update that rendered it useless (the Meamo version of circle of death kept spinning) seriously annoyed me. (Yeah I know – devel repository stuff means assuming the risk).

The recent updates didn’t suffer from the same problem but it simply won’t log-on. On the logonscreen I press the Oauth (without changing username and password) and I get a failed login.

As username there are three optional options to use, mailadress, @+username or username (without the “@”). I have tried all of them (originally I used the mailadress which worked in older versions).

I suspect that my password is the problem – it contains capitals and normals, characters and numbers which should all be OK I hope. But it also contains “=”. I can logon using the webinterface so there is nothing wrong with my credentials.

In orde to tweet from the phone, I did try one of the competing products (I don’t have the phone handy but I believe its called TwimGo). This other program also denied me to logon.

As I read that you used premade Oauth libraries, they may be the common reason why two clients on the same platform behave the same in the same situation. Is it possibly so that the character “=” is not properly handled in the Oauth library you used?

In theory, anything in the text entry field on the search ‘view’ gets persisted, that is if you move to another view, then come back t9o the search view those terms should still be in the search field. similarly if you quit, and reload it should reload those terms. Just alter them to what you want.
That said I’m sure there are bugs in this process. and it is now confused by the latest versions which go find any saved searches you have with twitter, and turn them into buttons. These you still need to change with twitter.com, but witter will load the new ones whenever it updates your profile info (when you post mainly)

Am I to assume the above is *not* the behaviour your seeing? In which case which specific version ( from app manager) are you using, and what is happening?

i’m not sure i understand. you had witter working before? then it stopped loading at all. now it loads but doesn’t retrieve any tweets.
did you have oauth configured before?
you say on thed ‘logon screen’ you hit oauth buttonand you get failed logon….witter doesn’t have a logon screen. it has account setup. but once configured once you don’t need to go back there. the oauh button should bring up the browser and a twitter page for authorising witter. does it?

you don’t need to enter your password in witter at all anymore. in fact i’ll probably delete that input box. the point of oauth is that you don’t need to give third party apps your password.
the oauth library/process doesn’t ever see your password.

as allways without a log i can’t really do more than guess at the problem.

When typing a tweet to someone you need to know the persons (twitter) name and type it completely if it is not a reply.
Is it possible to get a kind of shortlist while you’re typing the @name?
This because I don’t remember all aliases and don’t want to make a mistake.

That was something that sort of half worked in the version at Extras. But only ever worked if you a) had all the friends loaded, and b) it was the first thing in the tweet field.
Now that I’ve moved to a different kind of text entry field, even that much doesn’t work. I’m not sure if there is an auto complete option in the text view. If I find one I’ll certainly add this function.

I removed it thinking that it wouldn’t work now basic auth isn’t supported by twitter. Intending to get around to re-write that whole area.
Someone told me that it does still work, so 0.3.6-8 re-enabled the button. However last time I checked extras-devel had swallowed that version. not sure when it will pop up as available as an update.

I had a similar problem. My N900 runs PR1.3 and witter version 0.3.4-8. When I first start witter all I see is the throbber and nothing else (black screen). Finally killed it. Then started it per your instructions with $ run-standalone.sh …. Again nothing. Then killed it and started it again with $ run-standalone.sh …. This time witter started. Belowis the output from not-starting and starting correctly. Hope this helps. Thanks for witter. My apologies if this is not the right place to report this. If so just delete my posting.

the button should be in the top right of every page. Some versions of opera apparently see fit to strip this whole left column off the page. (as does the mobile site) but firefox/chrome etc should find it there.
as for clearing searches, currently I believe it just adds searches together, it used to clear every time, but that was annoying if you were just refreshing a search.

Which version of witter do you have installed? Looks like a typo in the reply function is causing some prob. Though it seems to still send the reply along with an id.
Maybe i messed something in the last drop of code.
I’m assuming you’ve not been editing the code at all.

Sadly my attention comes in fits and starts, next step is to look at code and I’m not really actively developing it right now. Others are looking to get involved developing witter so will no doubt get looked at sometime

I don’t know whats happening but Witter is crashing or freezing on a regular base. I’m using version 0.3.7

When I start witter:
If gps is off on my N900 (location off on witter) it start with the first (summary) page with my account info and does not display my account name or it crashes directly.
If I go to the messages and refresh it will freeze.

If gps on my N900 is on my account name and info is displayer properly on the summary page. Go to the messages and on 50% of the times I initial refresh it will freeze or crash.

Please let me know what I can do to inform you properly and help you find and repair the issue.

That is very strange, the error ‘AttributeError: account isntance has no attribute control’ looks like a coding error type problem, but it clearly doesn’t effect most people.
I’d like to be more helpful, but I’m not supporting witter anymore since I moved to an android device. So I don’t have the code set up to look more deeply into it. There was someone on the maemo.org forums talking about picking up the source for witter and continuing development, so perhaps someone on the forums will be able to help

Go check out the forums at talk.maemo.org search for witter and you’ll find the thread. You should get info there. I don’t have the time to keep supporting/developing witter right now, but some people in the community are pretty supportive.

I used to be very happy to seek out this web-site.I needed to thanks in your time for this wonderful read!! I undoubtedly enjoying every little little bit of it and I have you bookmarked to check out new stuff you blog post.

Hey Would. First up, GREAT WORK you have here. I really appreciate it. By far, the best N900 witter app v seen around.
V got a lil prob though. this is the second time m installing witter (running 0.3.7 right now). the first time didnt work so well until i ran across a forum which suggested i enter “mv .witter .witter.back” in xterm and reconfigure the client. it seemd to work until this morning after i restarted my fone (havent restarted since i did the mv). now, the app comes up but the timeline doesnt load, neither does anything else. you could see the wheel turning but after 5minutes, i figure it wouldnt matter. i read one of your posts where u said to input “run-standalone.sh python2.5 /opt/witter/witter.py” and tell you the output. well, here’s mine:

Hi, sorry for slow response, I’m on a work trip. I don’t actually actively develop witter any more, but there are a couple of people on the maemo.org forums that have started to continue development.
That said that async reply thing was something that ‘happened’ occasionally. I think it meant that somewhere I was doing something I shouldn’t on the UI thread, but I never could track it down. For me it was an occasional error, rather than a consistent one. In any case best place to go is maemo.org forums and search for witter there. you should find an active thread discussing it.

Hey! I just got me a N900 with stock uptodate Maemo, and loving it more every day. Allthough an old phone, it does everything I need. And more. And I started to use Witter for Twitter app! But, as things go, I’d like to remove all accounts and start fresh, I got some problems activating it. But it won’t let me delete active accounts, but I can’t deactivate them either. Where is the config file located that defines the accounts at Witter? Keep up the good work, love the N900 and Witter!

I don’t still develop witter, however all it’s settings are kept in a set of files under your home folder (/home/user) the relevant files all start .witter they should be pretty self explanatory. failing that, there is a thread on talk.maemo.org where the guys that took over support may be able to offer assistance. glad it’s still proving of some use to people.

Hello, i read your blog occasionally and i own a similar one and i was just
curious if you get a lot of spam feedback? If so how do you reduce it, any
plugin or anything you can advise? I get so much lately it’s driving me crazy so any assistance is very much appreciated.