Re: [dev] JFS filesystem

2019-04-21 Thread Alexander Huemer
I have used JFS on Linux for several years, the experience was not positive. Under conditions like 'disk full' or 'power failure' it tends to corrupt data. I have also worked with JFS on AIX, over there the same issues do not seem to exist. Be cautious to use it for anything serious on Linux.

Re: [dev] GPL free Linux

2018-11-11 Thread Alexander Huemer
On Sun, Nov 11, 2018 at 09:43:12PM -0700, Anthony J. Bentley wrote: > Markus Wichmann writes: > > Why would you do something so pointless? First of all, licences only > > matter if you plan on redistribution, so most here won't care. Second, > > all the GPL demands is that you distribute the

[dev] RSS

2015-05-07 Thread Alexander Huemer
Hi, some time ago sfeed[1] was mentioned here on the list. I tried it out. It's lean and has some very nice features, I like it. There is one feature missing though that I personally consider important. That's a 'read/unread' status per entry that's unread initually and is toggled to read when

[dev] [PATCH quark] Fix chroot argument

2015-03-19 Thread Alexander Huemer
--- quark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quark.c b/quark.c index 9c8928d..ff13592 100644 --- a/quark.c +++ b/quark.c @@ -710,7 +710,7 @@ main(int argc, char *argv[]) logerrmsg(error\tchdir %s: %s\n, chrootdir, strerror(errno));

Re: [dev] [PATCH quark] Fix chroot argument

2015-03-19 Thread Alexander Huemer
On Thu, Mar 19, 2015 at 10:52:36PM +, Connor Lane Smith wrote: On 19 March 2015 at 22:25, Alexander Huemer alexander.hue...@xx.vu wrote: - if (chroot(.) == -1) { + if (chroot(chrootdir) == -1) { This looks wrong; see line 709: if (chdir(chrootdir) == -1) { So on line

Re: [dev] Scope of sbase and ubase

2015-03-17 Thread Alexander Huemer
Hi. On Mon, Mar 09, 2015 at 02:05:39PM +0100, FRIGN wrote: On Mon, 9 Mar 2015 01:51:59 +0100 Alexander Huemer alexander.hue...@xx.vu wrote: Hey Alexander, Thanks for you answer FRIGN. while reading the README file of sbase I noticed `sponge`, remembered that that's from moreutils

[dev] [st] [PATCH] FAQ: fix wording

2015-03-09 Thread Alexander Huemer
--- FAQ | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FAQ b/FAQ index ee1c154..7adb2af 100644 --- a/FAQ +++ b/FAQ @@ -92,7 +92,7 @@ in TERM. ## I cannot compile st in OpenBSD -OpenBSD lacks of librt, despite it begin mandatory in POSIX +OpenBSD lacks of librt, despite

[dev] Scope of sbase and ubase

2015-03-08 Thread Alexander Huemer
Hi, while reading the README file of sbase I noticed `sponge`, remembered that that's from moreutils and realized that sbase does not provide a strict subset of coreutils, what I assumed for some reason. The description of sbase is: sbase is a collection of unix tools that are

Re: [dev] Operating system choice

2014-11-21 Thread Alexander Huemer
Hi. On Thu, Nov 20, 2014 at 06:25:13PM -0800, Charles Thorley wrote: I find Minix3 to be extremely interesting, and attractive (at least in principle). The advantages of Minix are purely theoretical. All the different servers can be restarted when they crash, but that does not make the cause

Re: [dev] c++-style comments [was fsbm]

2014-11-07 Thread Alexander Huemer
On Fri, Nov 07, 2014 at 03:35:52PM +0100, Sylvain BERTRAND wrote: On Fri, Nov 07, 2014 at 10:30:20AM +0100, Silvan Jegen wrote: There is the http://llvm.linuxfoundation.org/index.php/Main_Page llvm/clang is worse than gcc as it's from the start a massive c++ kludge. At least with gcc until

Re: [dev] c++-style comments [was fsbm]

2014-11-06 Thread Alexander Huemer
On Thu, Nov 06, 2014 at 05:56:55PM +0100, Sylvain BERTRAND wrote: I wonder how much of the linux kernel tinycc is able to compile. I don't know about tcc, but there are leftovers[1] of a very unorganized project that tried to compile the Linux kernel with intel icc and IBM XE. There was a

Re: [dev] SGI Irix look (4Dwm)

2014-10-22 Thread Alexander Huemer
On Tue, Oct 21, 2014 at 08:11:28PM -0400, Andrew Gwozdziewycz wrote: On Mon, Oct 20, 2014 at 3:57 AM, Alexander Huemer alexander.hue...@xx.vu wrote: Hi. On Mon, Oct 20, 2014 at 12:14:32AM +, orangepri...@hushmail.com wrote: If anything, Apple's dominance has made people familiar

Re: [dev] SGI Irix look (4Dwm)

2014-10-22 Thread Alexander Huemer
On Wed, Oct 22, 2014 at 10:49:46AM -0400, Andrew Gwozdziewycz wrote: On Wed, Oct 22, 2014 at 10:41 AM, Alexander Huemer alexander.hue...@xx.vu wrote: Direct observation. Go to any conference (I've only been to conferences in the US, so YMMV), or Meetup, and witness the number of glowing

Re: [dev] SGI Irix look (4Dwm)

2014-10-22 Thread Alexander Huemer
On Wed, Oct 22, 2014 at 01:23:46PM -0400, Andrew Gwozdziewycz wrote: Who are we talking about? *I* use free software. Despite that, I can't fully trust what my computer is doing, because I can't verify the hardware the software runs on isn't doing something malicious. I also can't verify that

Re: [dev] SGI Irix look (4Dwm)

2014-10-20 Thread Alexander Huemer
Hi. On Mon, Oct 20, 2014 at 12:14:32AM +, orangepri...@hushmail.com wrote: If anything, Apple's dominance has made people familiar with the Unix command-line, which is certainly better than had they been using Windows. Oh. Where does this come from? People are steered away from the

Re: [dev] SGI Irix look (4Dwm)

2014-10-19 Thread Alexander Huemer
Hi. On Sun, Oct 19, 2014 at 01:20:37PM +, orangepri...@hushmail.com wrote: Is there any way to get that old classic SGI Irix look (4Dwm) in dwm? I don't know why you would want that. In any case, the underlying concepts of dwm do not match the concepts of 4DWM. What you can do is use FVWM

[dev] [st] [PATCH] Improve readability of enum members

2014-08-20 Thread Alexander Huemer
The 'left shift from one' notation of power of two integers is more expressive than the result. Signed-off-by: Alexander Huemer alexander.hue...@xx.vu --- st.c | 64 1 file changed, 32 insertions(+), 32 deletions(-) diff --git

Re: [dev] [PATCH] Simplify README

2014-08-18 Thread Alexander Huemer
On Mon, Aug 18, 2014 at 12:58:02PM +0200, Claudio wrote: AFAIK a terminal is an hardware device. Yes. Since st is only a software implementation it's ok to call it a virtual terminal emulator, isn't? Is st emulating a virtual terminal? No. It is emulating a terminal. Kind regards, -Alex

Re: [dev] [st] will global-less changes be wanted upstream?

2014-08-17 Thread Alexander Huemer
Hi. On Sat, Aug 16, 2014 at 04:51:27PM -0500, Steven Degutis wrote: I'm making progress on my port of st to OS X, and one of the changes I'm making is to get rid of globals, turning most of them into fields on Term, and making all the functions that use them take Term* as an argument. It's a

Re: [dev] [st] will global-less changes be wanted upstream?

2014-08-17 Thread Alexander Huemer
On Sun, Aug 17, 2014 at 09:47:48PM +0200, FRIGN wrote: The world you're living in is the walled garden of OS X. It's your choice to either attempt to improve it, which is futile, or enter a world in which improvement is possible in the first place. I agree very much with this (generalized)

[dev] [PATCH] Simplify README

2014-08-17 Thread Alexander Huemer
The term 'virtual terminal emulator' was broken. There is nothing virtual about it, it's a terminal emulator. Signed-off-by: Alexander Huemer alexander.hue...@xx.vu --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 25606a2..b38c88b 100644

Re: [dev] [PATCH] Add tab-completion file-name expansion.

2014-07-06 Thread Alexander Huemer
On Sun, Jul 06, 2014 at 08:19:15PM +0200, Michal Nazarewicz wrote: +© 2014 Google Inc. // author: Michal Nazarewicz min...@mina86.com You should already have elaborated on this. Do it now. Kind regards, -Alex

Re: [dev] arrow in the knee because of the GNU GPL???

2014-06-25 Thread Alexander Huemer
On Wed, Jun 25, 2014 at 12:52:33PM -0400, Calvin Morrison wrote: On 25 June 2014 12:49, Calvin Morrison mutanttur...@gmail.com wrote: Could you describe to us what *exactly* did happen to you? see [0] [0] http://knowyourmeme.com/memes/i-took-an-arrow-in-the-knee But more seriously,

Re: [dev] arrow in the knee because of the GNU GPL???

2014-06-25 Thread Alexander Huemer
On Wed, Jun 25, 2014 at 01:52:14PM -0400, Calvin Morrison wrote: If you craft your words enough, and trick people enough, then they will believe it is free, while being coerced into helping the 'greater good' The 'greater good' isn't a good but a bad thing in your opinion? It's a

Re: [dev] arrow in the knee because of the GNU GPL???

2014-06-25 Thread Alexander Huemer
On Thu, Jun 26, 2014 at 03:21:01AM +0900, Philip Rushik wrote: The GPL inforces that the codebase stays free. No, all free licenses enforce a continually free codebase. If I release under MIT or BSD, that code that I release will always be free and there's nothing anybody else can do about

Re: [dev] arrow in the knee because of the GNU GPL???

2014-06-25 Thread Alexander Huemer
On Thu, Jun 26, 2014 at 04:07:14AM +0900, Philip Rushik wrote: You have cause and effect written incorrectly. Free software existed first, then licenses were created afterward to protect them. Ok, well then in popularized or spread free software. My point was just that has done good

Re: [dev] [PATCH] [ubase] Simplify login

2014-06-04 Thread Alexander Huemer
On Wed, Jun 04, 2014 at 12:44:01PM +0200, FRIGN wrote: On Wed, 4 Jun 2014 00:15:58 +0200 Alexander Huemer alexander.hue...@xx.vu wrote: You think so? That's not at all what I personally associate with this feature. Can you elaborate? Many people don't understand how hashing-functions

Re: [dev] [PATCH] [ubase] Simplify login

2014-06-03 Thread Alexander Huemer
On Mon, Jun 02, 2014 at 06:41:45PM +0200, FRIGN wrote: […] If your password is strong, having the hashes won't help any attacker. […] I think that's the whole point. Hashing the password before writing it to disk does not hurt much. In case an attacker got access to a box he does not know what

Re: [dev] [PATCH] [ubase] Simplify login

2014-06-03 Thread Alexander Huemer
On Wed, Jun 04, 2014 at 12:12:51AM +0200, FRIGN wrote: On Tue, 3 Jun 2014 22:44:31 +0200 Alexander Huemer alexander.hue...@xx.vu wrote: What here provides a false feeling of security? Well, the incorporation of this shadow-file. Some users might see this as a motivation for weak

Re: [dev][project] soap - a simple xdg-open replacement

2014-05-04 Thread Alexander Huemer
On Sat, May 03, 2014 at 05:18:59PM +0200, FRIGN wrote: […] I thought that it would be awesome to press a youtube-link in Skype […] You are not using Skype really, right? I hope I am just unable to properly decode the sarcasm here. Kind regards, -Alex

Re: [dev] [st] [patch] misplaced parenthesis in LEN macro

2014-04-20 Thread Alexander Huemer
Hi, On Sun, Apr 20, 2014 at 03:41:40PM +0400, non...@inventati.org wrote: […] -#define LEN(a) (sizeof(a) / sizeof(a[0])) +#define LEN(a) (sizeof(a) / sizeof(a)[0]) […] Why parenthesis anyway? a[0] is an expression, not a type, and there is nothing to group here. sizeof is not a

Re: [dev] Is there any suckless issue tracker?

2014-03-23 Thread Alexander Huemer
Hi, the only thing I know of that (remotely) fits the requirements is taskwarrior[1]. Note: remotely, it's not really an issue tracker, but I think it might be (mis-)used as that. Kind regards, -Alex [1] http://taskwarrior.org/

Re: [dev] golang dwm status

2014-03-13 Thread Alexander Huemer
On Thu, Mar 13, 2014 at 08:34:04PM +0100, Markus Teich wrote: the recent discussion about Go motivated me to finally rewrite my dwm status shell script. Since this is one of my first programms written in Go, I would love to get some feedback from you Go gurus out there. The weird

Re: [dev] golang dwm status

2014-03-13 Thread Alexander Huemer
On Thu, Mar 13, 2014 at 08:50:38PM +0100, Markus Teich wrote: Alexander Huemer wrote: I don't have much clue about go, but I think that the content of /proc/cpuinfo differ greatly on different architecture. Maybe the output ls `lscpu` is better suited for that purpose. Thanks

Re: [dev] tmux/screen alternative

2014-02-22 Thread Alexander Huemer
Hi, On Sat, Feb 22, 2014 at 02:33:20PM +0100, Anselm R Garbe wrote: If you don't use screen/tmux with st, what other tool comes to mind for a scrollback buffer? Well, there is [1]… Kind regards, -Alex [1] http://lists.suckless.org/dev/1310/17807.html

Re: [dev] [dwm] Conversion to XCB

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 09:41:54AM +0100, Markus Wichmann wrote: I got bored over the weekend and decided to start porting dwm to XCB. The reason being that XCB rules and Xlib drools. I'm almost done with dwm.c, but I have come across a few problems I'd like to discuss here. I think it would

[dev] Mailinglists (was: [dwm] Conversion to XCB)

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 01:07:37PM +0100, Markus Wichmann wrote: archive of this list (which goes back maybe a year or so), and the official version of the archive has no search function, nor has any attempt at sending Google on that archive been successful. And since the archive only has

Re: [dev] Mailinglists (was: [dwm] Conversion to XCB)

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 01:31:40PM +0100, Martti Kühne wrote: There's [0] and [1]. [0] offers alternative protocol access (nntp). Yes, GMANE was created exactly for the reason I mentioned. But the whole thing should be the other way around. A NNTP newsgroup that _maybe_ has an additional email

Re: [dev] Mailinglists (was: [dwm] Conversion to XCB)

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 01:31:40PM +0100, Martti Kühne wrote: There's [0] and [1]. [0] offers alternative protocol access (nntp). cheers! mar77i [0] http://dir.gmane.org/gmane.comp.misc.suckless [1] http://lists.suckless.org/dev/index.html On Tue, Jan 21, 2014 at 03:18:31PM +0200, Edgaras

Re: [dev] Mailinglists (was: [dwm] Conversion to XCB)

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 01:03:19PM +, Nick wrote: On Tue, Jan 21, 2014 at 01:52:11PM +0100, Alexander Huemer wrote: On Tue, Jan 21, 2014 at 01:31:40PM +0100, Martti Kühne wrote: There's [0] and [1]. [0] offers alternative protocol access (nntp). Yes, GMANE was created exactly

Re: [dev] [dwm] Conversion to XCB

2014-01-21 Thread Alexander Huemer
On Tue, Jan 21, 2014 at 02:58:41PM +0100, Paul Onyschuk wrote: On Tue, 21 Jan 2014 13:07:37 +0100 Markus Wichmann nullp...@gmx.net wrote: Maybe it was. However, I found no such conversation in my personal archive of this list (which goes back maybe a year or so), and the official

Re: [dev] [st][patch] externalpipe()

2013-12-20 Thread Alexander Huemer
Hi Rob! On Fri, Dec 20, 2013 at 01:56:15PM +, Rob wrote: Attached is a patch which gives st the ability to spit out its current screen text to another program. This can be added under shortcuts in config.h, e.g.: static Shortcut shortcuts[] = { ... { MODKEY, 'u',

Re: [dev] [st][patch] externalpipe()

2013-12-20 Thread Alexander Huemer
On Fri, Dec 20, 2013 at 08:21:34PM +0100, Alexander Huemer wrote: Hi Rob! On Fri, Dec 20, 2013 at 01:56:15PM +, Rob wrote: Attached is a patch which gives st the ability to spit out its current screen text to another program. This can be added under shortcuts in config.h, e.g

Re: [dev] [st][patch] externalpipe()

2013-12-20 Thread Alexander Huemer
On Fri, Dec 20, 2013 at 08:05:15PM +, Rob wrote: Anyway, glad you've found it useful, it's been pushed to the wiki with your modification now too. Nice. Thanks. Kind regards, -Alex

Re: [dev] [st][patch] externalpipe()

2013-12-20 Thread Alexander Huemer
On Fri, Dec 20, 2013 at 09:43:46PM +0100, koneu wrote: Faster (and more stable) than st for me. Seems like a very good reason to improve st… Kind regards, -Alex

Re: [dev] Bringing together OS'es terminals and their codepages

2013-12-04 Thread Alexander Huemer
On Tue, Dec 03, 2013 at 12:56:08PM +0100, patrick295767 patrick295767 wrote: If you are developing C/C++ programs in a terminal environment, you may know the problem of the codepages. Sometimes in Putty, SSH,... you may have some problems with characters. What about this Portability of your

Re: [dev] portable photoshop-like lite application based on C?

2013-12-02 Thread Alexander Huemer
On Mon, Dec 02, 2013 at 05:54:11PM +0100, patrick295767 patrick295767 wrote: Since a long time I have been using gimp on Windows and Linux. Gimp on Linux is rather ok, but on Linux, the portable version and the 2.8.10 are very slow, which limits drastically the use. A photo editor is a

Re: [dev] Adding MRU support to dmenu

2013-12-02 Thread Alexander Huemer
On Mon, Dec 02, 2013 at 09:40:24PM +0100, q...@c9x.me wrote: On Mon, Dec 02, 2013 at 10:07:17AM -0600, Chris Down wrote: On 2013-12-01 18:19:22 -0500, Eyal Erez wrote: create mode 100644 .gitignore A gitignore when there are no subdirectories? What do you want a gitignore for? Just

Re: [dev] [st] System freeze when killing X after using st-git

2013-11-26 Thread Alexander Huemer
On Tue, Nov 26, 2013 at 07:14:27PM +0100, Andreas Marschall wrote: I'd like to report a serious bug that I have for quite some time now with st-git. When I install the git version with sudo make clean install on my Arch Linux box it installs fine and I can use it. But as soon as I kill X to go

Re: [dev] [st] System freeze when killing X after using st-git (fixed)

2013-11-26 Thread Alexander Huemer
On Tue, Nov 26, 2013 at 09:00:55PM +0100, Andreas Marschall wrote: Hello, I just cloned the latest git version and removed the commit manually from st.c and put the few deleted lines back in. Why? Reverting a commit is very easy with git. In your case it's the simple matter of doing:

Re: [dev] [st] Cannot compile latest HEAD, nor 0.4.1

2013-11-25 Thread Alexander Huemer
On Mon, Nov 25, 2013 at 04:32:28PM +0100, Matthias Beyer wrote: Hi, I'm watching your projects since a couple of months. From the rest of the email it seems like you not only watched it, but also used st. Today I tried to update st (i replaced the less important parts with (...) and

Re: [dev] suckless shell prompt?

2013-11-25 Thread Alexander Huemer
On Mon, Nov 25, 2013 at 02:27:14PM -0500, Chris Down wrote: On 2013-11-25 14:16:48 +0200, Dimitris Zervas wrote: Well, making our own shell, would be a really good idea! In my opinion others already got close enough for us not to worry (rc, mksh, undoubtedly others). We had some discussion

[dev] Mailing list behavior - was: Question about arg.h

2013-11-06 Thread Alexander Huemer
On Tue, Nov 05, 2013 at 09:38:35PM +0100, Alexander Huemer wrote: P.S. I passionately hate people who top-post, don't give enough details and cannot say hi or bye in an email. Well, this escalated quickly. Let's forget about this hi or bye thing. Top-posting though completely ruins

Re: [dev] Question about arg.h

2013-11-05 Thread Alexander Huemer
On Tue, Nov 05, 2013 at 08:26:01PM +0100, Krol, Willem van de wrote: The arguments (argc, argv) _are used, in the for loop from ARGBEGIN. Are you talking about st or some other suckless.org project? I do not see the USED macro being used anywhere in st. Kind regards, -Alex

Re: [dev] Question about arg.h

2013-11-05 Thread Alexander Huemer
On Tue, Nov 05, 2013 at 09:24:38PM +0100, Krol, Willem van de wrote: It's in sbase arg.h The usage of the macro in these places does not make sense to me. Kind regards, -Alex P.S. I passionately hate people who top-post, don't give enough details and cannot say hi or bye in an email.

Re: [dev] Suckless remote shell?

2013-11-04 Thread Alexander Huemer
On Mon, Nov 04, 2013 at 05:11:40PM +0300, Alexander S. wrote: 2013/11/4 FRIGN d...@frign.de: On Sun, 3 Nov 2013 18:57:23 -0500 Jacob Todd jaketodd...@gmail.com wrote: No one ever said it had to be in c you fucking nerd. No one ever said it, because it is expected to be in C. Go is a

Re: [dev] hggit and the suckless repos

2013-09-20 Thread Alexander Huemer
Hi, On Fri, Sep 20, 2013 at 09:48:23PM +0200, Sam Ḥilluc wrote: The suckless projects being the only ones that I follow from their git repo, I decided to simply use the hggit extension of mercurial. So I installed it and tried a: hg clone git+http://git.suckless.org/dwm, I got a ValueError

Re: [dev] hggit and the suckless repos

2013-09-20 Thread Alexander Huemer
On Fri, Sep 20, 2013 at 10:39:07PM +0200, Sam Ḥilluc wrote: On 09/20/2013 10:14 PM, Alexander Huemer wrote: $ hg clone git://git.suckless.org/st works for me. Are you sure there is a http+git URI scheme for hg-git? Kind regards, -Alex Indeed, with the git protocol it works fine (I

Re: [dev] sbase: logname

2013-06-18 Thread Alexander Huemer
is this? * A default return value of 1 is uncommon * The end of a function does not need a semicolon My try is attached. Kind regards, -Alexander Huemer /* See LICENSE file for copyright and license details. */ #include unistd.h #include stdio.h int main(void) { char *login; login = getlogin

Re: [dev] sbase: logname

2013-06-18 Thread Alexander Huemer
Damn it, without the semicolon now. /* See LICENSE file for copyright and license details. */ #include unistd.h #include stdio.h int main(void) { char *login; login = getlogin(); if (!login) return 1; puts(login); return 0; };

Re: [dev] sbase: logname

2013-06-18 Thread Alexander Huemer
Maybe now? /* See LICENSE file for copyright and license details. */ #include unistd.h #include stdio.h int main(void) { char *login; login = getlogin(); if (!login) return 1; puts(login); return 0; }

Re: [dev] [surf] introduce .gitignore

2013-03-15 Thread Alexander Huemer
On Thu, Mar 14, 2013 at 09:04:48PM +0100, Christoph Lohmann wrote: On Thu, 14 Mar 2013 21:04:48 +0100 Alexander Huemer alexander.hue...@xx.vu wrote: On Thu, Mar 14, 2013 at 05:51:14PM +0100, Christoph Lohmann wrote: On Thu, 14 Mar 2013 17:51:14 +0100 Christian Hesse l...@eworm.de wrote

Re: [dev] [surf] introduce .gitignore

2013-03-15 Thread Alexander Huemer
On Fri, Mar 15, 2013 at 04:16:01AM +0800, Chris Down wrote: On 15 March 2013 03:52, Alexander Huemer alexander.hue...@xx.vu wrote: Hi, On Thu, Mar 14, 2013 at 05:51:14PM +0100, Christoph Lohmann wrote: On Thu, 14 Mar 2013 17:51:14 +0100 Christian Hesse l...@eworm.de wrote

Re: [dev] [surf] introduce .gitignore

2013-03-14 Thread Alexander Huemer
are not of interest for it, it can not know by itself. The move to a different VCS occurs very seldomly, in this case the infrastructure has to be adopted. Porting the file ignore list is a very easy task. What are the downsides of having this besides the VCS move thing? Kind regards, -Alexander