1. RedyCode 1.0.dev preview

I released a binary-only preview of RedyCode 1.0.dev. You can download it at http://redy-project.org/files/RedyCode-1.0.dev.7z.

The most important new features is the Build window. It can bind or translate/compile projects now! It has a fancy manifest, rc, and bat file preview and a nice GUI to select files and options. To use this, you must create or open a project first.

RedyCode can now open files without a project, but a project is required to run or build files. It can also open .redy project files or any other text files from the shell (command line, double-click associated files, or Send To), and can open more than one file at at time if you multi-select files in Explorer.

This release of redycode has been translated and compiled with an icon and embedded images. It is portable, simply unzip to any folder and run it. If you do not have a default euphoria installation at C:\euphoria\, it will ask you to give it a euphoria path.

This is an early, barely-tested version that has known bugs, but most of it works well. blink

new topic     » topic index » view message » categorize

2. Re: RedyCode 1.0.dev preview

Oops! I found a bug where EUDIR is empty if euphoria is at C:\euphoria\. I uploaded a fixed version.

new topic     » goto parent     » topic index » view message » categorize

3. Re: RedyCode 1.0.dev preview

Hi Ryan

Is this meant to be portable and standalone? If so, then should there not be an euphoria/bin, euphoria/include directory, as there was in 0.9.4, along with the redycode includes in the include folder? Can I use the includes from the previous releases?

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

4. Re: RedyCode 1.0.dev preview

ChrisB said...

Hi Ryan

Is this meant to be portable and standalone? If so, then should there not be an euphoria/bin, euphoria/include directory, as there was in 0.9.4, along with the redycode includes in the include folder? Can I use the includes from the previous releases?

Cheers

Chris

Yes it is designed to be portable, but I left Euphoria out this time. You may either put in your own copy of RedyCode\euphoria or redycode can detect euphoria if it is at C:\euphoria\, otherwise it will ask for a location of euphoria. It is intended to be compatible with eu 4.0 and 4.1, and both watcom and gcc, but hasn't been fully tested yet.

new topic     » goto parent     » topic index » view message » categorize

5. Re: RedyCode 1.0.dev preview

I just uploaded a new version, same link. It has a few bug fixes, and a new feature: context menus for the Project Tree. Right-click on folders or files to explore, open command prompt, run (window or console), open with external program, rename, delete, or create a sub-folder. The Preferences dialog has a new tab to let you select an external image viewer, text editor, and web browser.

I am getting closer to finalizing a list of features that will be added before the feature freeze for v1.0. Perhaps by the beginning of December, i will focus on testing, fixing bugs, cleanup, and writing documentation for the planned final release at the end of the year.

new topic     » goto parent     » topic index » view message » categorize

6. Re: RedyCode 1.0.dev preview

ChrisB said...

...along with the redycode includes in the include folder? Can I use the includes from the previous releases?

Yes.

RedyCode is going more in the direction of being a general-purpose Euphoria IDE now. I hope people will find it useful, whether or not they want to make redylib-based applications. What i will probably do for v1.0 is have separate packages.

  • Redycode binary and supporting files will be a very small download.
  • If you want to make it a fully portable system, add euphoria and GCC/watcom to it (Or use EuPortable).
  • If you want to use redylib, you can put one or more versions in your include folder.
new topic     » goto parent     » topic index » view message » categorize

7. Re: RedyCode 1.0.dev preview

Hi Ryan

It sounds you're stepping back from the all in one IDE / run eu program directly from the IDE without stepping outside the box solution that I thought Redy set out to be. It has been a fantastic effort on your part with an unprecedented speed of development, even with no financial reward.

Is this the case? If so I can't help thinking that this is a mistake. Euphoria has (sad to say) stagnated with a few talented solo developers each following their own directions. Redy was an opportunity to draw new talent to the language, but again, I see it fragmenting if you separate into a set of separate libraries.

To be honest, I'm beginning to struggle with the fragmentation of euphoria - stuff I do seems to work with most of what I have, but there always seems to be that 10% that I need to fiddle with / poke around with in order to get stuff running - wrong libraries in the operating system, wrong dlls, wrong or too recent an operating system.

If anyone has installed BlitzBasic / BlitzPlus or BlitzMax (all development stopped, but now open sourced, and still with a large active following), then you will know just how quickly you can have a development environment set up with several demos to pick apart.

It seems tha nowadays, if you want to be a hobby programmer with a serious language, or even a serious programmer, then there are very ew choices available for quick and easy setuo.

Even tried installin Go a few weeks ago, but that stalled because I was too lazy to set up the GitHub repositories that it seems Go needs even to start.

Cheers

ABitSadToday Chris

new topic     » goto parent     » topic index » view message » categorize

8. Re: RedyCode 1.0.dev preview

ChrisB said...

Hi Ryan

It sounds you're stepping back from the all in one IDE / run eu program directly from the IDE without stepping outside the box solution that I thought Redy set out to be. It has been a fantastic effort on your part with an unprecedented speed of development, even with no financial reward.

Is this the case? If so I can't help thinking that this is a mistake. Euphoria has (sad to say) stagnated with a few talented solo developers each following their own directions. Redy was an opportunity to draw new talent to the language, but again, I see it fragmenting if you separate into a set of separate libraries.

To be honest, I'm beginning to struggle with the fragmentation of euphoria - stuff I do seems to work with most of what I have, but there always seems to be that 10% that I need to fiddle with / poke around with in order to get stuff running - wrong libraries in the operating system, wrong dlls, wrong or too recent an operating system.

If anyone has installed BlitzBasic / BlitzPlus or BlitzMax (all development stopped, but now open sourced, and still with a large active following), then you will know just how quickly you can have a development environment set up with several demos to pick apart.

It seems tha nowadays, if you want to be a hobby programmer with a serious language, or even a serious programmer, then there are very ew choices available for quick and easy setuo.

Even tried installin Go a few weeks ago, but that stalled because I was too lazy to set up the GitHub repositories that it seems Go needs even to start.

Cheers

ABitSadToday Chris

I heard once, you should learn at least one new language a year. enough to be dangerous. I have gotten as far as installing a new language and running some demos many times. currently trying Code Typhon (Delphi clone) someone suggested a few months ago. mixed results on getting far enough into the syntax to get useful results. I never look at the time spent as a waste. it gives you a new perspective on your default language. try a few new things in a language you do know to keep the rust off once in a while too.

RedyCode seems like it is as much of a demo of redylib as it is a standalone program in its own right. similar to SciTE and Scintilla

far from dropping euphoria or stopping development of redylib, Ryan has made RedyCode more portable and version agnostic as well as more open to other GUI toolkits all while debuging and extending redylib as well as RedyCode. from what I understand, when redylib is used as the GUI, more specialized features of RedyCode may become available. there may even be a plugin or build-in ability so other GUI or code language specific helpers would be possible. syntax highlighting, pretty printing etc.

go into the options->preferences, you only need set path to euphoria you have to create or open a project to run and build anything. I don't think all the options are finished, this is an advanced try it version.

redylib and FluidAE and before that, there have been many iterations. RedyCode is pretty good evidence that redylib is usable now. still, some have a lot invested in some other GUI and have to work in multiple languages, so it will be great to have another tool that understands Euphoria and the build process.

I've enjoyed watching Redy progress over the years, often only in demos on IRC. one example. the latest version barely uses any CPU or memory. that is quite amazing! everywhere else you look at similar examples in other GUI or compare it to some of the modern bloatware that can barely run in a resource limited system. taking hundreds of megs or even over a gig to install as a developer. I often have plenty of other things running in the background so it is one less thing to worry about. it's mostly Euphoria and low level calls to the system. some of the tools you already have installed, required or favorite versions and will want to continue to use. as Ryan says above, there will be release versions with euphoria and compilers and redylib there are already portable versions of euphoria that redylib can be added to.

IRC:freenode/redy might be another source of information about the development IRC:freenode/euphoria is usually quiet but sometimes you can find answers there

new topic     » goto parent     » topic index » view message » categorize

9. Re: RedyCode 1.0.dev preview

Hi

I don't disagree with anything you've said there, Ryan has done a fantastic job, and it's a great addition to my eu tool set, and I admit there are many great, and easy , for you and me, to set up and get going.

However, what I was looking forward too was a one click install / setup / ready to go programming environment. What's the install path to setting up a new running euphoria with Redy ready to click and go? Compare that with Blitz or Lazarus to name but two, and it really is install, run the ide, create a program, and click the run button (pretty much anyway). Of course there are other more mainstream languages that are also a pain to set up - bet they would be easier if they were less mainstream.

It sounds like I'm blaming Ryan, I'm really not, but I just feel that this is waht euphoria needs to 'hook' some new people to the language.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

10. Re: RedyCode 1.0.dev preview

ChrisB said...

Hi

I don't disagree with anything you've said there, Ryan has done a fantastic job, and it's a great addition to my eu tool set, and I admit there are many great, and easy , for you and me, to set up and get going.

However, what I was looking forward too was a one click install / setup / ready to go programming environment. What's the install path to setting up a new running euphoria with Redy ready to click and go? Compare that with Blitz or Lazarus to name but two, and it really is install, run the ide, create a program, and click the run button (pretty much anyway). Of course there are other more mainstream languages that are also a pain to set up - bet they would be easier if they were less mainstream.

It sounds like I'm blaming Ryan, I'm really not, but I just feel that this is waht euphoria needs to 'hook' some new people to the language.

Cheers

Chris

I didn't intend to short change your one click install point. again, this is an early preview. the next version of redylib and the current RedyCode source hasn't been released yet. I haven't heard anything that the same self contained packaging won't also be available. a webpage could be setup with checkboxes to select what options someone wanted to download or the default, everything included. it's not that complicated.

do we really have any idea what the demand is? all the hot development might be getting something listed in an app store for 99c and who cares about desktop anyway. hanging on to existing users may give more bang to the buck. a few will expect a Visual Studio 1000k man hour polished IDE. you won't be able to talk them out of it and they will feel cheated anything created doesn't run on their tablet or phone wireless. they aren't going to help make it happen any time soon either.

you notice the last few months, there were questions about using different already installed versions of euphoria and redylib and other language file editing. potentially leaving the impression with someone new to Euphoria that it's going to be more complicated than it is. there is almost no way to satisfy both users with one install. or is there? with a few edits to a config file, it's completely self contained again.

there is no way to predict how a new user is going to react, some will go the extra mile and get past the install and have no problems no matter how complicated. some will just never even try the one click or fail on their first demo for whatever reason and give up, not ask for help or give anyone a chance to fix bugs. we are lucky if 1 in 20 new users leave comments about why they leave or stay. sometimes it's like an echo chamber in any forum. appearing to catering to someone with little to no programming experience might unintentionally turn away more experienced programmers. after all, it's a programming language and tools probably never going to be a programming environment sandbox where you can learn by trial and error.

I haven't tried this in a few months, https://logicbox.jahooma.com/ there are things that are just much simpler in other languages. bugs and errors aside, Euphoria has a ways to go before you can point and click a user interface and logic as fast as someone can dream something up.

new topic     » goto parent     » topic index » view message » categorize

11. Re: RedyCode 1.0.dev preview

ryanj said...

I released a binary-only preview of RedyCode 1.0.dev. You can download it at http://redy-project.org/files/RedyCode-1.0.dev.7z.

{...}

This release of redycode has been translated and compiled with an icon and embedded images. It is portable, simply unzip to any folder and run it. If you do not have a default euphoria installation at C:\euphoria\, it will ask you to give it a euphoria path.

most everything seems to look and work ok. the icon shows on the Xp taskbar but I only see a generic icon on RedyCode

I still have a weird problem with run that may be Xp mangling quotes.

that error 31 popup when I try to open a terminal is:

0x1F "A device attached to the system is not functioning"

I'll have to write a simple demo to see why it happens. guessing it should be opening "cmd.exe" instead of "cmd" in Xp

in case you thought about adding some extra windows error reporting: these are a few wraped routines I've used.

  1. outputdebugstring sends string output to a debugviewer handy to keep the console and log uncluttered while outputting program state details
  2. logfile, a q&d output to a logfile
  3. get_winerror_string() output textual rather than a numeric windows error code.
  4. PlaySound() plays wav files

see a short demo at the end

not responsible if this folds instead of spindles http://openeuphoria.org/pastey/290.wc

I know redylib has its own methods of showing program internals. maybe some will recall that from an earlier redylib demo. can't have too many debug simplifying options.

new topic     » goto parent     » topic index » view message » categorize

12. Re: RedyCode 1.0.dev preview

ne1uno said...

I still have a weird problem with run that may be Xp mangling quotes.

that error 31 popup when I try to open a terminal is:

0x1F "A device attached to the system is not functioning"

I'll have to write a simple demo to see why it happens. guessing it should be opening "cmd.exe" instead of "cmd" in Xp

Maybe you should use the ComSpec environment variable?

new topic     » goto parent     » topic index » view message » categorize

13. Re: RedyCode 1.0.dev preview

ChrisB said...

Hi Ryan

It sounds you're stepping back from the all in one IDE / run eu program directly from the IDE without stepping outside the box solution that I thought Redy set out to be. It has been a fantastic effort on your part with an unprecedented speed of development, even with no financial reward.

Is this the case? If so I can't help thinking that this is a mistake. Euphoria has (sad to say) stagnated with a few talented solo developers each following their own directions. Redy was an opportunity to draw new talent to the language, but again, I see it fragmenting if you separate into a set of separate libraries.

To be honest, I'm beginning to struggle with the fragmentation of euphoria - stuff I do seems to work with most of what I have, but there always seems to be that 10% that I need to fiddle with / poke around with in order to get stuff running - wrong libraries in the operating system, wrong dlls, wrong or too recent an operating system.

If anyone has installed BlitzBasic / BlitzPlus or BlitzMax (all development stopped, but now open sourced, and still with a large active following), then you will know just how quickly you can have a development environment set up with several demos to pick apart.

It seems tha nowadays, if you want to be a hobby programmer with a serious language, or even a serious programmer, then there are very ew choices available for quick and easy setuo.

Even tried installin Go a few weeks ago, but that stalled because I was too lazy to set up the GitHub repositories that it seems Go needs even to start.

Cheers

ABitSadToday Chris

I have not abandoned the goal of making a self-contained complete solution, i'm just expanding redycode to try to appeal to a larger audience. Don't worry, there will still be a bundled option. I just don't want to force the bundled option becuase it seems unnecessary (and makes a very large download compared to the base files). Redycode is designed to check it's own folders for a bundled euphoria, and if it isn't there, it checks for a standard euphoria installation. Or, you can manually point it to another location of euphoria.

As far as redylib, i don't expect people to use it with redycode. I want redycode to be useful for any kind of euphoria progarmming. But if you include redylib in your eu program, it will activate additional features in the IDE.

new topic     » goto parent     » topic index » view message » categorize

14. Re: RedyCode 1.0.dev preview

ne1uno said...

RedyCode seems like it is as much of a demo of redylib as it is a standalone program in its own right. similar to SciTE and Scintilla

far from dropping euphoria or stopping development of redylib, Ryan has made RedyCode more portable and version agnostic as well as more open to other GUI toolkits all while debuging and extending redylib as well as RedyCode. from what I understand, when redylib is used as the GUI, more specialized features of RedyCode may become available. there may even be a plugin or build-in ability so other GUI or code language specific helpers would be possible. syntax highlighting, pretty printing etc.

go into the options->preferences, you only need set path to euphoria you have to create or open a project to run and build anything. I don't think all the options are finished, this is an advanced try it version.

redylib and FluidAE and before that, there have been many iterations. RedyCode is pretty good evidence that redylib is usable now. still, some have a lot invested in some other GUI and have to work in multiple languages, so it will be great to have another tool that understands Euphoria and the build process.

I've enjoyed watching Redy progress over the years, often only in demos on IRC. one example. the latest version barely uses any CPU or memory. that is quite amazing! everywhere else you look at similar examples in other GUI or compare it to some of the modern bloatware that can barely run in a resource limited system. taking hundreds of megs or even over a gig to install as a developer. I often have plenty of other things running in the background so it is one less thing to worry about. it's mostly Euphoria and low level calls to the system. some of the tools you already have installed, required or favorite versions and will want to continue to use. as Ryan says above, there will be release versions with euphoria and compilers and redylib there are already portable versions of euphoria that redylib can be added to.

IRC:freenode/redy might be another source of information about the development IRC:freenode/euphoria is usually quiet but sometimes you can find answers there

That is very accurate.

new topic     » goto parent     » topic index » view message » categorize

15. Re: RedyCode 1.0.dev preview

ne1uno said...
ChrisB said...

Hi

I don't disagree with anything you've said there, Ryan has done a fantastic job, and it's a great addition to my eu tool set, and I admit there are many great, and easy , for you and me, to set up and get going.

However, what I was looking forward too was a one click install / setup / ready to go programming environment. What's the install path to setting up a new running euphoria with Redy ready to click and go? Compare that with Blitz or Lazarus to name but two, and it really is install, run the ide, create a program, and click the run button (pretty much anyway). Of course there are other more mainstream languages that are also a pain to set up - bet they would be easier if they were less mainstream.

It sounds like I'm blaming Ryan, I'm really not, but I just feel that this is waht euphoria needs to 'hook' some new people to the language.

Cheers

Chris

I didn't intend to short change your one click install point. again, this is an early preview. the next version of redylib and the current RedyCode source hasn't been released yet. I haven't heard anything that the same self contained packaging won't also be available. a webpage could be setup with checkboxes to select what options someone wanted to download or the default, everything included. it's not that complicated.

do we really have any idea what the demand is? all the hot development might be getting something listed in an app store for 99c and who cares about desktop anyway. hanging on to existing users may give more bang to the buck. a few will expect a Visual Studio 1000k man hour polished IDE. you won't be able to talk them out of it and they will feel cheated anything created doesn't run on their tablet or phone wireless. they aren't going to help make it happen any time soon either.

you notice the last few months, there were questions about using different already installed versions of euphoria and redylib and other language file editing. potentially leaving the impression with someone new to Euphoria that it's going to be more complicated than it is. there is almost no way to satisfy both users with one install. or is there? with a few edits to a config file, it's completely self contained again.

there is no way to predict how a new user is going to react, some will go the extra mile and get past the install and have no problems no matter how complicated. some will just never even try the one click or fail on their first demo for whatever reason and give up, not ask for help or give anyone a chance to fix bugs. we are lucky if 1 in 20 new users leave comments about why they leave or stay. sometimes it's like an echo chamber in any forum. appearing to catering to someone with little to no programming experience might unintentionally turn away more experienced programmers. after all, it's a programming language and tools probably never going to be a programming environment sandbox where you can learn by trial and error.

I haven't tried this in a few months, https://logicbox.jahooma.com/ there are things that are just much simpler in other languages. bugs and errors aside, Euphoria has a ways to go before you can point and click a user interface and logic as fast as someone can dream something up.

I fully intend to keep redy "a one click install / setup / ready to go programming environment". I am hoping it will be so easy to use, it will encourage more people to use Euphoria.

new topic     » goto parent     » topic index » view message » categorize

16. Re: RedyCode 1.0.dev preview

ne1uno said...
ryanj said...

I released a binary-only preview of RedyCode 1.0.dev. You can download it at http://redy-project.org/files/RedyCode-1.0.dev.7z.

{...}

This release of redycode has been translated and compiled with an icon and embedded images. It is portable, simply unzip to any folder and run it. If you do not have a default euphoria installation at C:\euphoria\, it will ask you to give it a euphoria path.

most everything seems to look and work ok. the icon shows on the Xp taskbar but I only see a generic icon on RedyCode

I still have a weird problem with run that may be Xp mangling quotes.

that error 31 popup when I try to open a terminal is:

0x1F "A device attached to the system is not functioning"

I'll have to write a simple demo to see why it happens. guessing it should be opening "cmd.exe" instead of "cmd" in Xp

in case you thought about adding some extra windows error reporting: these are a few wraped routines I've used.

  1. outputdebugstring sends string output to a debugviewer handy to keep the console and log uncluttered while outputting program state details
  2. logfile, a q&d output to a logfile
  3. get_winerror_string() output textual rather than a numeric windows error code.
  4. PlaySound() plays wav files

see a short demo at the end

not responsible if this folds instead of spindles http://openeuphoria.org/pastey/290.wc

I know redylib has its own methods of showing program internals. maybe some will recall that from an earlier redylib demo. can't have too many debug simplifying options.

Wow, looks useful. I'll try to incorporate it into redylib. Thanks.

new topic     » goto parent     » topic index » view message » categorize

17. Re: RedyCode 1.0.dev preview

petelomax said...
ne1uno said...

that error 31 popup when I try to open a terminal is:

0x1F "A device attached to the system is not functioning"

I'll have to write a simple demo to see why it happens. guessing it should be opening "cmd.exe" instead of "cmd" in Xp

Maybe you should use the ComSpec environment variable?

that looks like the way to go. it returns the full path to cmd or any other command prompt someone sets as their default. bash, powershell whatever.

getenv("COMSPEC") 
new topic     » goto parent     » topic index » view message » categorize

18. Re: RedyCode 1.0.dev preview

ne1uno said...
petelomax said...
ne1uno said...

that error 31 popup when I try to open a terminal is:

0x1F "A device attached to the system is not functioning"

I'll have to write a simple demo to see why it happens. guessing it should be opening "cmd.exe" instead of "cmd" in Xp

Maybe you should use the ComSpec environment variable?

that looks like the way to go. it returns the full path to cmd or any other command prompt someone sets as their default. bash, powershell whatever.

getenv("COMSPEC") 

Thanks for the suggestion. I tried it, and it works. smile

new topic     » goto parent     » topic index » view message » categorize

19. Re: RedyCode 1.0.dev preview

ryanj said...

I have not abandoned the goal of making a self-contained complete solution, i'm just expanding redycode to try to appeal to a larger audience. Don't worry, there will still be a bundled option. I just don't want to force the bundled option becuase it seems unnecessary (and makes a very large download compared to the base files).

A couple of comments.
1. "bundled option becuase it seems unnecessary"
I feel it is absolutely necessary in the current programming environment.
2. "makes a very large download compared to the base files"
I stopped looking at the size of a program or a download in year 2002, I think.
Intel and Microsoft gave us the memory and the tools, and they are saying "use the memory"
Any programmer spends time reducing the size of the download, is wasting his time.

Have you not looked at the size of the downloads of so many pieces of software? They are 10 times, no 100 times bigger than what you are creating. More important is the end users' time. Can he with one click do the job? The answer should be "yes".

new topic     » goto parent     » topic index » view message » categorize

20. Re: RedyCode 1.0.dev preview

I released another preview at http://redy-project.org/files/RedyCode-1.0.dev.7z. It now has different project types: Euphoria - General, Euphoria - Redy App, Website, and Other. Custom templates may also be added.

RedyCode has improved support and highlighting for various file types (still a work in progress). It is now possible to edit html files in the Website project type.

You can also right-click on folders or files in the Project Tree to do basic file operations (rename, delete, create folder) or open files in an external text editor, image editor, or web browser.

new topic     » goto parent     » topic index » view message » categorize

21. Re: RedyCode 1.0.dev preview

Hi

Sorry went away fore a few days to a bootcamp - lost 11 lbs!.

Anyway, love the direction you are taking RedyCode Ryan, now that my concerns have been cleared up.

I've downloaded the latest version, and loaded a non Redy euphoria program. How do I run it? Also can I have an option to 'run with' [eui 4.05] [euiw 4.05 [eui 4.1] [euiw 4.1] , bind compile etc. These could be options set up by the user. You could even widen the language scope with user preference setup - this is a very good editor, love the funcion / procedure list down the side.

Cheers

Chris

new topic     » goto parent     » topic index » view message » categorize

22. Re: RedyCode 1.0.dev preview

ChrisB said...

Hi

Sorry went away fore a few days to a bootcamp - lost 11 lbs!.

Thats good.

ChrisB said...

Anyway, love the direction you are taking RedyCode Ryan, now that my concerns have been cleared up.

Thanks. Good to hear.

ChrisB said...

I've downloaded the latest version, and loaded a non Redy euphoria program. How do I run it? Also can I have an option to 'run with' [eui 4.05] [euiw 4.05 [eui 4.1] [euiw 4.1] , bind compile etc. These could be options set up by the user. You could even widen the language scope with user preference setup - this is a very good editor, love the funcion / procedure list down the side.

Cheers

Chris

Currently, you have to create a "Euphoria - General" or "Euphoria - Redylib" project and put the eu source files in it, if you want to run and view error reports. I plan to add the ability to run euphoria programs without a project, but that will take more work.

I am also considering the ability to associate different file extensions with different external programs. I'm not sure how it should handle multiple versions of euphoria yet.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu