Canon 5d руководство по ремонту audi а6 руководство по эксплуатации асу 109 2009 Nissan руководство по ремонту honda civic руководство по ремонту умз руководство по качеству ооо Korg Pa 500 руководство по e36 bmw руководство по эксплуатации ups nokia x6 руководство пользователя руководство по вязанию современные интерпретации стилей руководства Dsc W120 Sony руководство по обращению с мужчинами театр под руководством джигарханяна Xerox 3140 руководство мтз руководство по эксплуатации авео tusl2 c руководство руководство по эксплуатации спринтер руководство по ремонту шевролет лачетти Sony Ericsson K790 руководство по ремонту volvo volkswagen golf руководство Mail Ru 142 pocketbook 301 руководство пользователя мультимедийное руководство по ремонту уаз Sanyo Bosch Sgs 46e52 Eu Kenwood Tk 150s руководство по эксплуатации toyota succeed руководство по эксплуатации panasonic 9 word 2007 руководство руководство по оральному Htc 5388 I samsung ml 1660 руководство руководство по сборке мебели 104 руководство по ремонту ваз 21074i а6 руководство скачать Beko Dfs 1500 руководство по эксплуатации мазда mpv acronis disk director руководство методическое руководство в доу руководство по ремонту газ 52 чем отличается лидерство от руководства 126 руководство по эксплуатации hyundai руководство по эксплуатации fiat doblo Ariston Arsl 105 1100 d link руководство выплаты за классное руководство Canon Digital Ixus 70 руководство по настройке руководство по ремонту foton Line 6 Spider руководство пользователя samsung b7722 руководство цб рф 318 Asus M4a89gtd Pro теория стилей руководства лайкерта 812 руководство хонда аккорд платц тойота руководство windows mobile 6.5 руководство пользователя руководство по эксплуатации визир Photo Dvd Maker Professional руководство по эксплуатации daf руководство администратора linux pdf Samsung мазда руководство по ремонту основные функции руководства руководство по ремонту двс matiz руководство по ремонту руководство по эксплуатации 2108 Sony Mex Dv160ue руководство по ремонту калдина 21099 скачать руководство Canon 400 asus n53j руководство пользователя руководство по 406 двигателю Lightroom 3 honda руководство по ремонту скачать Candy Holiday 104 D руководство по ремонту pajero руководство по ремонту mazda 3 Canon Lbp 5050 руководство по выживанию на пустошах Z610i полное руководство по самоубийству Canon 550d ipod touch 4g руководство пользователя руководство по эксплуатации снегохода руководство по ремонту автомобиля мерседес киа спектра руководство руководство к духовной жизни руководство windows vista скачать руководство по ремонту ровер 400 руководство по ремонту мтз скачать руководство по эксплуатации ниссан алмера руководство по ремонту ланцер диктаторский стиль руководства skype руководство пользователя 6500 руководство по обеспечению качества hover руководство по ремонту samsung gt s5230w руководство access 2003 практическое руководство руководство по ремонту рено эспейс руководство по ремонту мтз 82.1 руководство по ремонту ваз 21120 Canon G10 Indesit Kgb Vs 400 руководство по эксплуатации tomahawk 9030 hyundai accent руководство по эксплуатации руководство уфмс россии Sony Dsc S730 руководство пользователя edius руководство по эксплуатации шевроле круз руководство по эксплуатации вагонов Apc Smart Ups 1000 руководство по эксплуатации passat Htc Hero Android скачать руководство по ремонту canon руководство по расширенным операциям daewoo nexia руководство по эксплуатации ивеко дейли руководство по эксплуатации Janome L394 adobe premiere pro 2.0 руководство скачать клиническая фармакология национальное руководство Alligator 550 руководство по эксплуатации фольцваген пассат Bosch Silver S4 Samsung 5230 руководство по ремонту mitsubishi canter руководство по эксплуатации ваз 21144 создание руководства Panasonic Kx Tcd450 руководство по эксплуатации хонда интегра классификация и характеристика стилей руководства peugeot 207 руководство по эксплуатации Samsung 606 металлоконструкции 3d руководство пользователя руководство по ремонту ваз 2170 что называется стилем руководства руководство по эксплуатации шевроле тахо руководство по эксплуатации canon Panasonic nissan maxima a33 руководство руководство фольксваген пассат руководство по эксплуатации volkswagen caddy trailblazer руководство по ремонту cr v руководство по ремонту методы руководства менеджмент стили лидерства и руководства руководство nokia e51 руководство по эксплуатации bmw 5 идеальный стиль руководства

Jamtris new version ideas

For the next version of Jamtris I would very much like to have some feedback from you! I want to know which features you want to see in the next version of this popular game. Features that definitely will make it into the next version are

  • The ability to turn off the game and continue at a later time
  • A small indicator of current time (for when you’re playing Jamtris while waiting for the bus, for example)
  • An alternative pause button (for phones that don’t properly map the current pause button)

Please add a comment below with your other wishes for the next version!

Upload update

Due to the great interest in my little php-upload-with-progress-bar script I have now created a sourceforge project for it and released a new version of the code, based on all the great feedback in the original blog post. The new version can be downloaded here. The changes are mostly to make it easier to get started with the script. If you’ve already got it working, don’t bother downloading this one.

If you’ve got ideas for the next version, please leave a message in the comments or on the Sourceforge project page. Already planned features for next version are ability to print progress (in percentages), as suggested by Travis, and download speed.

The script has also been given a name, tesUpload, and a permanent home.

Chaining the DHTML Spinbox

After a great suggestion in the comments to the original article I have now added the ability to chain several spinboxes so that when one reaches it max value, another one is updated. To do this, simply create two spinboxes and then call registerOverflowObserver() on the first one with the second one as an argument. An example:

 m = new SpinBox('minutes',0,59);
 h  = new SpinBox('hours',0,23);
 m.registerOverflowObserver(h);

Now whenever the first spinbox gets below 0 or above 59, the second one will be decreased or increased by 1. This is useful when you want to use spinboxes to enter time, which is one of the most common things spinboxes are used for.

The demo has been updated to display this new functionality. I have also created a sourceforge project for the spinbox which can be found here, so if you need any kind of support or want to file a bug then please go there.

The complete archive can be downloaded here.

Creating a DHTML Spinbox

Recently I was asked by a client if it would be possible to use a spinbox for a certain value in a web application I was building. Being totally sure this was going to be a piece of cake I said yes (it’s just a textbox with two arrows, right?). As it turns out, it is possible, only a little bit more complicated than I first thought.

The Spinbox

The spinbox is also called spinbutton, spincontrol or UpDown button. You can see it in the picture on the right. It is commonly used to enter, for example, time and dates in desktop applications but isn’t available as an HTML form element.

Placing the arrows

The greatest challenge by far was positioning the arrow images. I started trying to do it using css, but soon gave up when I encountered too many browser inconsistensies, bugs and missing features (such as missing inline-block in Firefox), and decided to do it the old-fashioned way instead: using tables. In my solution, a table is created dynamically around the textbox and made inline so that more than one spinbox can be laid out on the same line. Only problem is, Firefox and IE both don’t understand display:inline-table, they want display:inline instead, which Safari & Opera don’t like. The solution to that:

table.style.display='inline';
try {
    table.style.display = 'inline-table';
} catch(e) {}

Firefox just silently drops the inline-table declaration that it doesn’t understand but IE throws and error. That’s why the try/catch statement is needed.

PeriodicalExecuter

When one of the arrows is clicked, the value in the textbox should increase or decrease while the mouse button is held down. To accomplish this I created a Prototype PeriodicalExecuter which updates the textbox with increasing frequency. Only problem is, for some reason they’ve decided to not include a stop method for the PeriodicalExecuter. Luckily, someone else also ran into this problem. I’ve included that solution in my source.

Disable context menu

In Firefox on Mac, the context menu pops up when you hold down the left mouse button for a second or so anywhere in the window. This is obviously a bit annoying when you are trying to use the spinbox. Turns out that you can stop it from happening by denying the onContextMenu action from firing. In Prototype code:

Event.observe(img,'contextmenu',function(evt){Event.stop(evt);});

In HTML this would be:

<img src="pic.gif" oncontextmenu="return false;">

Files

Download the files here: tesSpinbox. You can try a live demo here: Demo.

Usage

Include prototype first, and then spinbox.js. Change the path to the images in spinbox.js (sb_imgpath) to point to where you uploaded the images. Then to convert any textbox into a spinbox:

new SpinBox(id_of_textbox,min_value,max_value,padded_length);

Padded_length is the desired length of the string in the textbox. If the string is shorter than this value, it will be padded with zeros. A padded_length of 3 would mean that 7 becomes 007, for example. A spinbox example:

<input type="text" id="myspin" size="2">
<script language="javascript">
    new SpinBox('myspin',0,59);
</script>

Will turn the textbox into a spinbox with a minimum value of 0, maximum value of 59 which is not zero-padded at all.

Sort by Artist,Year,Album in iTunes

I really like iTunes. In fact, after the first time I saw it running on a Mac I desperately searched for a similar application for Linux and almost considered writing one myself (not being 100% happy with Rhythmbox). I instantly knew that was the way I wanted my music organised. After my switch I find that, while good, iTunes is not perfect. My main problem with it is that while you can decide which column you want to order your music by, you can’t select which column it looks at when two songs have the same value in that column. For example, if you order by Artist it will order the songs by Artist, Album. This means that the albums by a certain artist will be sorted alphabetically, while I want them sorted by year. I find that that’s how I order the albums in my head, so it takes a while for me to find the album I’m looking for when they are sorted alphabetically.

The Solution

If you right click a column header in iTunes, you are able to select which fields are shown. My idea was to put the sort information I wanted into one of these fields. I settled for Grouping, since it’s one of the fields you can change when you edit the properties of a song. If I put the name of the artist followed by year and then by album into this field, sorting by this field should mean the songs are sorted the way I want them to be. Naturally, manually entering the information into this field would be quite tedious, so I wrote a quick Applescript to do it for me.

The Code

  1. tell application “iTunes”
  2. if selection is not {} then
  3. repeat with this_track in selection
  4. set this_year to (get this_track’s year)
  5. set this_artist to (get this_track’s artist)
  6. set this_album to (get this_track’s album)
  7. if this_year > 0 then
  8. set this_track’s grouping to this_artist & “,” & this_year & “,” & this_album
  9. else
  10. set this_track’s grouping to this_artist & “,” & this_album
  11. end if
  12. end repeat
  13. else
  14. display dialog “Select some tracks first…” buttons {“Cancel”} default button 1 with icon 2
  15. end if
  16. end tell

Instructions

Copy and paste this code into a file (or download it here). Save the file to Library/iTunes/Scripts/ in your home directory (you might have to create the Scripts directory if it doesn’t exist). The script should now show up in the scripts menu in iTunes. Select a few songs and then select the script from the scripts menu. The songs’ artist, year and album should be written to the grouping field. To sort by this field, right-click a column header and click grouping in the list that pops up. Click the grouping header once to sort by this field. Done! To get easier access to this script you can bind it to a shortcut key, see here.