Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Yim
Feb 12, 2004
I TURNED 20 AND ALL I GOT WAS THIS STINKING CUSTOM TITLE

Twon posted:

I took a whack at this:

http://www.tinyappz.com/wiki/TVRenamer

It looks like you won't be posting for a while, but here's hoping it's useful anyway. If you know any C#, you might be better off customizing it rather than using it straight-up. Episode names are manual.

Sorry about the late thanks, silly probation on my behalf. :(

Anyway, this works great, currently don't have the time to play around with it, but seriously good work. :)

I did think of one thing that'll probably cause problems, for example, if you only have the 2nd half of a season or only select files, then the numbers would have to start at a different point from 01. But I'll hopefully check out the code over the holidays when I have free time. Thanks again. :)

Neurozys posted:

I've been doing some research on this one as well. As far as I can tell the only decent source for TV episode lists the doesn't involve scraping a website is the plain text data provided by IMDB. I'm going to look at your code and see if I can manage to automatically fill in the episode titles if that data set is available.

I'm not sure if it's because I don't have time to really play around with this, but I couldn't get this part to work for some reason.

Adbot
ADBOT LOVES YOU

Revelations
Nov 17, 2004

heh, that's me. i'm wilson.

Neurozys posted:

Well, I had to write my own, but here we are three hours later with a download counter! Everything started out at 0, begining today. Sorry, but there was no way for me to get old download information, except possibly going through a month's work of server logs, which I'm not even sure exist, much less that I would have access to them.

You're awesome, thanks. Now I can stroke my ego when people download my code!

Neurozys
Apr 15, 2004

Yim posted:

I'm not sure if it's because I don't have time to really play around with this, but I couldn't get this part to work for some reason.

Ok, I'll write a quick walkthrough here -
1. Download "TVRenamer2" from http://www.tinyappz.com/wiki/TVRenamer2
2. Go to http://www.imdb.com/interfaces#plain - there's a list of 3 FTP servers. Click on one.
3. Now you're somewhere like ftp://ftp.sunet.se/pub/tv+movies/imdb/ . Download movies.list.gz
4. Use Winrar or Winzip or 7-Zip to extract movies.list from movies.list.gz
5. Put movies.list in the same folder as TVRenamer.exe
6. Run TVRenamer.exe
7. Your processer will go nuts for a couple seconds while it parses the list. Don't do anything
8. Your processer calms down again, and now TVRenamer.exe is hogging a couple hundred MB of RAM.
9. Type the first word of your series in the Series box ei "Happy"
10. Click the drop-down arrow in the box. There should be a list of every TV series ever with the word "Happy" in the title.
11. Select the correct series from the list. ie "Happy Days" or "Little Clowns of Happy Town, The"
12. Put in the season number
13. Use the browse for files to select the files you want to rename (you can select several at once.)
14. Hit the "Autofill Episode Titles" button.

A tip for when you're missing episodes from a season - create a few empty text files and add those to the list in place of the missing episodes.

Those Damn Apes
Sep 2, 2004
MONKEY MONKEY MONKEY
It would be awesome if you could write an app that would allow me to schedule a time to control my Olevia 232V from my pc w/ a serial cable. The documentation for it is below.

http://www.olevia.com/jsp/rs232/files/ATI_240_RS232_27_&_32_Inch.pdf
http://www.tinyappz.com/wiki/Request:1177966975

Those Damn Apes fucked around with this message at 01:41 on May 4, 2007

JediGandalf
Sep 3, 2004

I have just the top prospect YOU are looking for. Whaddya say, boss? What will it take for ME to get YOU to give up your outfielders?

Those drat Apes posted:

It would be awesome if you could write an app that would allow me to schedule a time to control my Olevia 232V from my pc w/ a serial cable. The documentation for it is below.

http://www.olevia.com/jsp/rs232/files/ATI_240_RS232_27_&_32_Inch.pdf
Oooh. I'm all over this. My last job/project was controlling devices over RS-232 and TCP/IP. I can probably scrap some code from it too.

But for now, the driving range beckons.

Steve Youngblood
Mar 19, 2007

***Hollywood Cobbler***

It would be rad if there was a way to get this automated.

1. Get email with url in it.
2. Save page in url as web archive. (IE its .mht)
3. Reply to first email and attach .mht
4. (Optional) Delete sent email and .mht.

I have some friends in some remote areas of the world and only have email access. I thought this would be pretty cool for them.

EVIL Gibson
Mar 23, 2001

Internet of Things is just someone else's computer that people can't help attaching cameras and door locks to!
:vapes:
Switchblade Switcharoo

Foifur posted:

I've made a java application that takes a folder name, including the roots. You can use the browse button to select a folder too. However, it wont work if you only type 'c:', you have to type 'c:\'.
Also, it can take an infinite number of suffixes to search for, just use a space to separate them. You can set the limit too, the minimum number of files in the folder in order for that folder to be added. I didn't implement the requested drag-to-explorer feature, but on windows platforms you are able to double-click the foldername in the tree to open that folder using your standard folder-opener (explorer most likely I guess).

There are bugs.

Oh, and I haven't edited the wiki. I've never used a wiki so I'm not really sure how to do it, and I don't have the time right now to learn.

http://www.uploadpower.com/en/download.php?id=9476CF4F1
Hmm, I just tried to download from this filehost. Apparently there is a delay before the download can begin. I hope you'll survive.

Oh drat, I thought people forgot about my request. Thanks mang a ton

Neurozys
Apr 15, 2004

NoSpoon posted:

I would like a program that toggles the mute on my CD Player input. At work my radio tuner runs through this input, and if I ever want to hear a WAV or similar playing I have to go to the Volume Control and manually mute it.

I have a flashy keyboard with a handful of keys which I can set up to open a given program. I'd like to link one of these to a .exe which opens, mutes/unmutes it and exits.

e: Windows XP

3 lines of code! (Plus importing a mixer library)

http://www.tinyappz.com/wiki/MuteCD

Sharkface
Apr 20, 2002

Neurozys posted:

3 lines of code! (Plus importing a mixer library)

http://www.tinyappz.com/wiki/MuteCD

i took a stab at this in unmanaged c++ and no extern's other than the windows classes. it was a nightmare and i was amazed at how hard mfc has made this.

Yim
Feb 12, 2004
I TURNED 20 AND ALL I GOT WAS THIS STINKING CUSTOM TITLE

Neurozys posted:

Instructions

Awesome, I thought I was doing it right. Just didn't have the TV shows I was searching for. :)

Thanks again, will be used very regularly. :)

rfeo
Jul 22, 2006

by Lowtax

rfeo posted:

singlepagethread.rar
http://www.sendspace.com/file/nadwk0

you want poo poo done, you gotta do it yourself.
Not very convenient, but works. I am sure my code and output html breaks all known standards.


singlepagethreadv2.rar
http://www.tinyappz.com/wiki/Single_Page_Thread

a little more convenient.

rfeo fucked around with this message at 13:53 on May 1, 2007

Dicky B
Mar 23, 2004

I'd like a PHP script that allows me to upload files to my web server without having to log in. I've looked around for something like this but I can't find anything that isn't feature packed with things I don't need.

Preferably the page would just look like this:

Password:
[_________]

File:
[_______________________][ Browse... ]

[ Upload ]

And this would upload the file to a directory that requires a password to access the index. I don't need to manage the files at all; I can do that via FTP when I get home.

I probably know enough about PHP to cobble this together myself but I don't know anything about web security so I'm worried I'll leave a huge security hole or something :3:

http://www.tinyappz.com/wiki/Request:1178039708

Neurozys
Apr 15, 2004


I'm a little confused, why do you need the password field? I assume the password protection on your upload folder is provided by the webserver (ie, through a .htaccess file). A script running on your server doesn't need to log in, it can access the directory directly through the file system.

Or do you intend to have a password required for the script to work?

edit: http://php.about.com/od/advancedphp/ss/php_file_upload.htm has some info for bare bones file uploading

Neurozys fucked around with this message at 04:21 on May 2, 2007

Daemon.eVolution
Nov 12, 2004

by Fistgrrl
Hey mate, are you still playing with small apps?

I have a small request, i googled for it with no luck, so maybe you can help.

I have a need to change positions of items on my TASKBAR. If i could click and drag a taskbar object, much similar to tabs in FireFox, and rearrange their position as i love it, instead of them being arranged by "birth" date, that would be peachy.

Possible?

Thanks.


Edit: http://taskbar-button-manager.innovative-solutions.qarchive.org/

Daemon.eVolution fucked around with this message at 12:26 on May 2, 2007

Wazzerphuk
Feb 9, 2001

Hating Chelsea before it was cool
Winner of the PWM POTM for September
Winner of the PWM POTM for January
Co-Winner of the PWM POTM for March

Daemon.eVolution posted:

I have a need to change positions of items on my TASKBAR. If i could click and drag a taskbar object, much similar to tabs in FireFox, and rearrange their position as i love it, instead of them being arranged by "birth" date, that would be peachy.

I hope you love this as much as I do:
http://www.freewebs.com/nerdcave/taskbarshuffle.htm

Daemon.eVolution
Nov 12, 2004

by Fistgrrl

Wazzerphuk posted:

I hope you love this as much as I do:
http://www.freewebs.com/nerdcave/taskbarshuffle.htm

Ah, yes, i just stumbled upon that little gem, it is awesome.

Makes you wonder why stuff like that is not implemented in OS by default ... =)

Thanks.

blahz
Dec 18, 2004


Revelations posted:

I believe I have this filled based on your description.

Try http://www.tinyappz.com/wiki/ReadDrive

Let me know if you'd like changes or a real user interface. It could be done, but I was going for something light here.

Edit: Also, I only tested it on a few dozen files totaling roughly 80MB. It took about 30 seconds to catalog that, so I'm sure it's wasting time somewhere. If I get more time soon I'll try and clean it up.

More Edit: On that note, I'm pretty sure it's being caused at least partially by my file size retrieving method, which is pretty hacked together I think. Anybody got pointers on doing that better/faster?

Edit again: Nevermind, I'd an idiot. I've got it to where 7950 files takes about 2 minutes now.

Oh wow, I forgot about this thread due to finals, so sorry for the late reply. I appreciate you making the program, but for some reason the download link doesn't work :(. Could you possibly reupload it? Thanks in advance.

Dicky B
Mar 23, 2004

Neurozys posted:

Or do you intend to have a password required for the script to work?
Yes, this. I don't want to log in but I don't want anybody to be able to upload files without a password.

Revelations
Nov 17, 2004

heh, that's me. i'm wilson.

blahz posted:

Oh wow, I forgot about this thread due to finals, so sorry for the late reply. I appreciate you making the program, but for some reason the download link doesn't work :(. Could you possibly reupload it? Thanks in advance.

Sorry about that, looks like tinyappz automatically capitalizes the first letter of uploaded file names, so my link was wrong. Works for me now, give it a shot.

FlyingCheese posted:

I would love to see a VU meter that was nice and simple, resizable, and looked appealing.

I've been doing a bit of work on this, but some details would be nice. You want it to monitor a single channel, or a stream, or a port(mic, line in, etc)? You want the characteristic VU meter delay of roughly 300ms, right? I can't very well just default the first available sound channel, would you like to be able to select one(could run more than one meter this way) or have it default to the first active stream it can find? I haven't started on the "visually appealing" part yet, so if you have an example of your usual screen layout I can try to design it to fit in.

It's a fun project so far, learning a lot since I don't work with audio at my job.

Revelations fucked around with this message at 17:21 on May 2, 2007

Neurozys
Apr 15, 2004

I'd like to apologize to anyone who was watching their download count - I screwed up the script while editing after the initial test and didn't catch that it was reseting the count to 1 on every download. Should work much better now.

Edit: Also, changes in the count may not show up on the app's page for 24 hours, thanks to MediaWiki's caching. I'll change that if I can figure out how to purge the refering page.

Neurozys fucked around with this message at 20:03 on May 2, 2007

FlyingCheese
Jan 17, 2007
OH THANK GOD!

I never thought I'd be happy to see yet another lubed up man-ass.

Revelations posted:

I've been doing a bit of work on this, but some details would be nice. You want it to monitor a single channel, or a stream, or a port(mic, line in, etc)? You want the characteristic VU meter delay of roughly 300ms, right? I can't very well just default the first available sound channel, would you like to be able to select one(could run more than one meter this way) or have it default to the first active stream it can find? I haven't started on the "visually appealing" part yet, so if you have an example of your usual screen layout I can try to design it to fit in.

It's a fun project so far, learning a lot since I don't work with audio at my job.

I want it to monitor the output to the speakers, the way a traditional mixer would be. For example: this would include music playing in Winamp, a windows beep or sound, a flash game in Firefox, etc. All that would show up on the VU meter. This would be it's default setting, but being able to select a Mic or Line-In input for finer control would be nice too, getting a whole string of meters across the top of the screen would be :awesome:

The 300ms is not really a delay, what it basically means is that it takes 300ms for the needle to go from -20 (or whatever the bottom is on your particular meter) to 0.

Basically I want 2 of these right next to each other for left/right channels and have them resizable to that they aren't taking massive amounts of space on the desktop.


I know it sounds kind of like a big project but it would be awesome.

FlyingCheese fucked around with this message at 19:48 on May 2, 2007

naughtysiggie
Feb 26, 2001
Is anyone having issues accessing the tinyappz website? I am receiving an error.

Inquisitus
Aug 4, 2006

I have a large barge with a radio antenna on it.

Dicky B posted:

Yes, this. I don't want to log in but I don't want anybody to be able to upload files without a password.
The problem with having the password and file fields as part of the same form is that the server will only check the password once the file's been uploaded to a temp folder somewhere. Not a problem with small files but if you're uploading one that's anywhere over 500KB or so, you don't really want to be kept waiting only to be told you've put the wrong password in.

Revelations
Nov 17, 2004

heh, that's me. i'm wilson.

FlyingCheese posted:

I want it to monitor the output to the speakers, the way a traditional mixer would be.

I know it sounds kind of like a big project but it would be awesome.

Give it some time, I'm working on this when I can catch a couple spare minutes. Thanks for the input, that'll help direct my efforts some.

Dicky B
Mar 23, 2004

Inquisitus posted:

The problem with having the password and file fields as part of the same form is that the server will only check the password once the file's been uploaded to a temp folder somewhere. Not a problem with small files but if you're uploading one that's anywhere over 500KB or so, you don't really want to be kept waiting only to be told you've put the wrong password in.
I won't be uploading anything big, it's basically just so I can quickly synchronize spreadsheets and Word documents between computers. At the moment I'm using Google docs but that has some limitations since it has to convert everything to its own format.

Neurozys
Apr 15, 2004

naughtysiggie posted:

Is anyone having issues accessing the tinyappz website? I am receiving an error.

My bad. Stupid cache fooled my into thinking it was working.

Softcox
Jul 13, 2004

But I will not hesitate.
Not for a second.
I just thought of something that would be pretty cool (to me at least) and is pretty tiny. Basically when you're burning a DVD any blank space is wasted (ignoring multisession). My idea is to make a right click menu where you can select a bunch of files and create PAR2 parity data files. The amount to create would just be the size of a blank DVD-5/9 minus the amount of data in the files you have selected.

Example: I have 4GB of files in a folder, I right click on them, say "Fill DVD-5 with Parity". Program creates ~350MB of .par2 files in the same folder. So you put them on the DVD with the usual data and you get extra defence against scratches etc.

If this is a stupid idea just say so. It just seemed :awesome: to me. Doesn't have to be done through right-click either that just seemed simplest.

Azmerod
Dec 3, 2003

Behold! my css power rules you

quote:

I would like a program that allows me to load an image, have it always on top of any/most applications and either has adjustable transparency or an transparency of 50%, as if I had printed the image onto acetate and taped it to my monitor.


This would be used to make a Command and Conquer 3 map using the world builder and any screen shot from GoogleEarth I want.
~ The Aphasian


I was bored at work so I went ahead and filled this request. Just a warning not to use huge images because windows doesn't seem to happy about moving around a partially transparent window.

http://www.tinyappz.com/wiki/Acetate

FlyingCheese
Jan 17, 2007
OH THANK GOD!

I never thought I'd be happy to see yet another lubed up man-ass.

Revelations posted:

Give it some time, I'm working on this when I can catch a couple spare minutes. Thanks for the input, that'll help direct my efforts some.

Thanks, no hurry.

Elendil004
Mar 22, 2003

The prognosis
is not good.


I am looking for somebody to look at an .mdi access file, and add some simple functionality to it. I don't really have a clue what's happening on the backend, and it's a peice that looks sort of hacked together so I don't want to delve in with my limited experiance.

Right now it takes input from a card reader, and according to a table i can edit changes a square from red to green. I want to be able to manually click the square to change it, and add a third color option.

Please if this is something you can take a look at find me on aim (cpthooksword) and I'll send you the file. Thank you.

edit: willing to toss a few tenbux for this becuase I need it in a quick fasion and it will make my life at work easier.

Elendil004 fucked around with this message at 18:53 on May 3, 2007

ate shit on live tv
Feb 15, 2004

by Azathoth
Ok this is a REALLY simple program that would help me out greatly, I just do'nt know how to handle the number of simultaneous connections......

I need a program that will telnet to a list of IP's preferrably simultaneously (no more than 30 or so if that matters). It will then login with the same login/password at every node. It can be something as easy as Login wait 3 seconds, password, wait 3 seconds. Then it will execute 2 commands with about a 3 second delay between them. The commands are "flmDeleteDb" and then "reboot."

So basically the program does this to the list of defined IP's:

Telnet 10.10.10.10
connected....
Login
(1-2 second delay)
Password
(1-2 second delay)
flmDeleteDb
(1 sec delay)
Y
(1-2 second delay)
reboot
(disconnect)

The more customizable the better, but really the only thing necessary would be letting me define a list of IP's and connecting to all of them simultaneously or near simultaneously.

This is some sample output if it would help you all the nodes will be similiar to that.
code:
ATTENTION!!!
This shell is intended for QUALIFIED PERSONNEL ONLY.  Customer Use of
this shell is not recommended OR supported by the Technical Assistance
Center.  Inappropriate use of shell Commands can have a Negative AND
Service Affecting impact on your network.  Please consult the User
Documentation for appropriate troubleshooting procedures.

To exit without logging in, enter Control-D at the login prompt.
To exit after logging in, type "logout" at the prompt.



Login: CISCO15

Password:XXXXXX

To discontinue logging in, type control-d or wait 60 seconds.
After logging in, type 'enablec' to enable abort key (control-c).


->
-> flmDeleteDb
flmDeleteDb


WARNING: The use of flmDeleteDb is traffic affecting and will cause
ALL provisioning data to be lost, INCLUDING any custom defaults.
This command should be used by qualified personnel ONLY under the
direction of Cisco technicians.  Follow the "Restore to Factory
Configuration" procedure to restore this card to the factory delivered
configuration.

Proceed?  (Y/N) (anything but Y aborts)

Y

MAY 03 16:32:09.50 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBD/prov.db

MAY 03 16:32:09.52 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBE/prov.db

MAY 03 16:32:09.53 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBF/prov.db

MAY 03 16:32:09.55 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBG/prov.db

MAY 03 16:32:09.57 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBH/prov.db

MAY 03 16:32:09.60 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBI/prov.db

MAY 03 16:32:09.62 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBJ/prov.db

MAY 03 16:32:09.65 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBA/prov.db

MAY 03 16:32:09.67 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBB/prov.db

MAY 03 16:32:09.70 UTC ERROR     databaseMgrIf.c:129   tShell
 ...Deleting /DBC/prov.db

MAY 03 16:32:10.23 UTC ERROR       flashMgrRed.c:208   tShell
 ...Deleting /DBR
value = 0 = 0x0
-> reboot
http://www.tinyappz.com/wiki/Request:1178209455

ate shit on live tv fucked around with this message at 17:36 on May 3, 2007

evilalien
Jul 29, 2005

Knowledge is born from Curiosity.
I would like a Windows program that does the following

1) Takes a folder name as input
2) Creates a new folder within this input folder for each file (not folders!) inside. The name of the new folder is the same as the file it is created from without the extension.
3) Moves each file into its corresponding folder.

I have a ton of crap to sort and this would help me immensely. A gui would be nice, but is not necessary. I know this is mundane as hell, but it should be pretty simple. Thanks in advance.

http://www.tinyappz.com/wiki/Request:1178209729

naughtysiggie
Feb 26, 2001
I would like a right click context menu that will give the option to:

1. if I right click anywhere on the current page, send the current page url you are viewing to a specific Google Talk contact (It would only be one specific contact that this would need to be set up for, not the entire buddy list.)

2. if I right click on a link, send it to a specific Google Talk contact (It would only be one specific contact that this would need to be set up for, not the entire buddy list.)

We have 2 computers set up on a network here and currently are having to copy and paste to send links back and forth, so the above program would be great. It would need to work for both IE and Firefox. We just want an easy way to send links back and forth. Thus, using Google Talk is not necessary. If something else would work well and has a small memory footprint, then we are not opposed to using another method to send links back and forth. However, whatever program would need to have drag and drop images that show up in the message window, rather than using as a file transfer, as well as drag and drop links to the message window.

Thank you!

Sharkface
Apr 20, 2002

evilalien posted:

I would like a Windows program that does the following

1) Takes a folder name as input
2) Creates a new folder within this input folder for each file (not folders!) inside. The name of the new folder is the same as the file it is created from without the extension.
3) Moves each file into its corresponding folder.

I have a ton of crap to sort and this would help me immensely. A gui would be nice, but is not necessary. I know this is mundane as hell, but it should be pretty simple. Thanks in advance.

http://www.tinyappz.com/wiki/Request:1178209729

http://slightlyprofessional.net/DirectorySplit.rar

does exactly what you asked. You can dry fire it to be sure you're not gonna gently caress anything up.

Vanadium
Jan 8, 2005

Sharkface posted:

http://slightlyprofessional.net/DirectorySplit.rar

does exactly what you asked. You can dry fire it to be sure you're not gonna gently caress anything up.

I was beaten and I did not even get to the GUI yet :smith:

Also it probably is going to gently caress stuff up

Sharkface
Apr 20, 2002

Vanadium posted:

I was beaten and I did not even get to the GUI yet :smith:

Also it probably is going to gently caress stuff up

lol i didn't know about the system.io.path class.. that woulda made this a lot easier.

aaannndd I thought you could have a file and a directory named the same thing.. lemme make a quick rewrite. thanks for that!

Neurozys
Apr 15, 2004

Vanadium posted:

I was beaten and I did not even get to the GUI yet :smith:

Also it probably is going to gently caress stuff up

I'm curious - what do all the ^'s mean?

Vanadium
Jan 8, 2005

Neurozys posted:

I'm curious - what do all the ^'s mean?

It means the same thing that not putting ^'s in C# means, a reference to a CLR object. I am using C++ because of being stubborn and we need fancy special syntax for "this is not a native object on the stack".

Neurozys
Apr 15, 2004

Vanadium posted:

It means the same thing that not putting ^'s in C# means, a reference to a CLR object. I am using C++ because of being stubborn and we need fancy special syntax for "this is not a native object on the stack".

Oooh, didn't even realize it wasn't C# (it's practically the same, seems like a silly point to be stubborn about), never seen C++/CLI syntax before.

Adbot
ADBOT LOVES YOU

Sharkface
Apr 20, 2002

Vanadium posted:

I was beaten and I did not even get to the GUI yet :smith:

Also it probably is going to gently caress stuff up

k i rewrote it using some of the ideas i got from your source. Thanks for using the System.IO.Path thing. I never woulda used that lol. check out my ghetto random namer!

http://www.tinyappz.com/wiki/DirectorySplit

  • Locked thread