MS Teams channels cannot contain MS-DOS device names
learn.microsoft.com
learn.microsoft.com
One time I thought it would be funny to run a shell script that looped through every Windows share on the network and tried to open `CON/CON` on it, resulting in a prompt Blue Screen of Death for each machine.
For some reason my friends did not think it was funny.
Arch, I suppose.
I'm going to put my money on Slackware.
I had tried Debian first but switched to RedHat pretty quickly afterwards.
(Back then, RedHat had nothing to do with "enterprise", it was just the most polished Linux distro around. Ubuntu didn't exist yet.)
(These days FWIW I use boring old Debian, and I'm not a zealot about it. It works for me. Use what works for you, I don't care. I have a separate machine for gaming and it runs Windows. I know Steam works pretty well on Linux these days but Windows is still less hassle for games.)
I've been considering going back to it though, but I know that I need to do it in measured steps.
Care to share any more about your slackware experience?
I watch pro matches everyday!
Sadly not the case, as much as I love ASL the scene has zero new blood. SC2 really killed the Brood War scene, and League of Legends really killed SC2. The days of packing an aircraft hanger with 30,000+ fans for OSL finals are long gone.
I was invited to the Stormgate alpha, and while I can't say anything about it (NDA), I am hopeful it will bring new life into RTS esports.
Is it in it's heyday? No. Is it still fantastic? Yeah.
KESPA killed Brood War primarily because Blizzard forced them to. Then KESPA itself died.
Lots of great BW still being played no question about that
I had some awkward conversations with my parents as a teenage nerd looking into "winehq". They didn't believe me that it had nothing to do with alcohol.
You're definitely not be French/European. Here our parents give us wine :) American?
I never understood why you should mass deny security clearances to people who like to "party".
On the other hand if you do find a Mormon who took some liberties in an earlier time in their life…
Or do you mean the new one, alluded to on the site? It's almost done... not ready to share yet. ;)
Sorry about that.
There are a few more pictures of the house on the architect's (my father's) web site: https://vardaarchitecture.com/
Look under "Residential - Palo Alto". But note that the furniture in these pictures was staging furniture that the real estate agents put in there to sell the house, NOT stuff I ever chose or used! (I hate it.)
When you build your new Austin LAN-party-pad would love to see that.
Maybe I'll help him put together a better site after the new house is done and ready to go on it...
Good old memories
% is used to surround environment variables for interpretation, for example.
It’s pretty irritating when files and folders on my Mac can’t be uploaded to Teams due to this limitation. It’s only forbidden for Windows users.
I think the only character that Macs don't allow is the colon. AFAIK, everything else is fair game, even emojis.
I just created a project with "ê" in the title. I wonder if I'll be able to share that with my Windows coworkers on Teams.
What people think about those CON, PRN, AUX, NUL etc are not filesystem limitation.
And while we are here - nor backslash, nor forward slash are used in NTFS. It can care less about what char do you use for a directory separator. Just be sure to update your APIs.
CON:? Really? It's not 1974 anymore.
People in glass houses shouldn't throw stones.
Edit: argh, HN deleted the emoticon. Ironic.
FWIW, I generally expect emojis to be more compatible than other symbols, because they have no legacy meanings - ex. ™ has never been a path separator, or indeed anything else.
Maybe it goes without saying, but for completeness, / is not allowed in filenames, and neither is null terminator (0x00 or \0) on mac either.
On Linux, only / and null terminator are banned from filenames.
For users of other platforms (at least 90% of desktop market) it would just display as slashes. Just not implementing this workaround would make it predictable when moving and using files.
It is painful being forced up update things due to software changing underneath you, but there must be a middle road.
According to https://en.m.wikipedia.org/wiki/Filename , reserved characters are:
HFS:
> :
HFS+:
> : on disk, in classic Mac OS, and at the Carbon layer in macOS; / at the Unix layer in macOS
APFS:
> In the Finder, filenames containing / can be created, but / is stored as a colon (:) in the filesystem, and is shown as such on the command line. Filenames containing : created from the command line are shown with / instead of : in the Finder, so that it is impossible to create a file that the Finder shows as having a : in its filename.
TIL about a 'carbon layer' and 'POSIX layer'
There's also the special treatment of "", ".", and ".." (that is, a file or directory name consisting entirely of zero, one, or two dots), and the convention that a name starting with a dot is hidden.
It is a UNIX shell implementation level convention. The file system and the kernel don't care, and a shell is not obliged to honour the convention.
Colon is allowed in the filesystem; it's displayed as a forward slash in the UI.
(There's historical reasons they do this: Classic Mac OS used colon as a path separator.)
Bonus: You can create the file C:\con\con using NT Native API filesystem calls. Someone even made a video of installing Windows into C:\con\con, and the kernel-side stuff works beautifully, and the explorer shell side dies horribly.
At some point, I think it would only play sound files in the program's folder. I have the vague feeling that it was later changed to an AOL-created subfolder unique to each Windows user.
So, just like running Windows normally then? :D
If you think "I know, I'll build it on top of SharePoint" the problem was inside you all along.
Yes, OneDrive client is restricted by the Win32 API in terms of allowable file names/path length (which is now 32k but Office doesn't respect MAX_PATH and implements its own ~250 path length limitation).
But maybe it's more about what everyone else might do with a channel name. Ie they might cut & paste it anywhere, and I guess windows users aren't expected to escape their own strings when pasted into cmd or powershell or wsl.
The teams code itself can probably handle it just fine, but maybe not all the unknown janky random things out there that might handle channel names.
Other people have pointed out the SharePoint folders associated with the channels. Not sure I would excuse that myself since it's easy enough to just escape or modify or encode to create a safe version for the directory, but maybe it's important elsewhere for the channel name and the directory name to be identical. Within one app you could simply encode and decode both the channel name and directory name the same way and totally hide the encoding from the user, but if the directory is used outside of the app, then it would look bad with URL encoding or something that everything else will just display as it is, not decoded.
So the directory has to be safe for everything else, and so the channel name has to be the same.
Essentially choosing to have these limits rather than have directory names that look ugly sometimes. It's ultimately not even a safety or breakage thing, just a cosmetic thing. All directories will always look natural and good, because they don't allow anything that would have needed to be encoded.
It's just a restriction imposed on SharePoint folder names bubbling up. Nothing fancy.
Like usernames. You don’t use usernames as primary keys for anything, do you? What happens when people marry?
HAHAHAHHHAAHAHA
Seen this so many times I literally laughed out loud.
Linux has UIDs that map to the username.
Both methods allow for changing the user name without having to change permissions on files. Both need manual manipulation to transition the user's folder name to the new username. Both also allow for creating a user folder that does not match the username. Example HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList on Windows.
Best practice and reality are two different things. Even Microsoft often will use the fully qualified user profile path in their coding instead of %USERPROFILE%, example would be OneDrive. Just look at the Environment key in regedit for the current user.
Sure you do. Saves doing joins all over the place just to get someone's username. Makes hand writing SQL easier.
Apply head to desk.
Was certainly a great lesson in schema design, among other things.
well it's extremly painful to rename the primary mail address or the UPN when it comes to microsoft 365 and active directory, especially in a hybrid environment. of course you can change upn's but it's definitly some kind of "primary key" for a user. in fact most systems at least use a UPN
Isn’t it? The folders work fine on a Mac.
Teams is not a things of beauty, and is rough as all hell for daily users.
In the end it's no different than if some service doesn't allow all numeric names or names to start with numerals or be too short, of which there are plenty of constraints on plenty of services.
There are problems large and small throughout the app and it really feels like someone went ‘close enough’ and called it done.
I worked on a sharepoint project once. Let's just say I'm not putting it on my resume these days.
Eh... When did the users of any kind of system start to fit that expectation? And what is that utopia system?
I know there exist terminals and shells that do try to be "helpful" and do auto-escape pastes, but that just breaks things that must not be modified, when the only reason you're pasting is because you need it to be an exact copy without any risk of human typos.
Some are less invasive and just warn when there are included \n before proceeding, but do not presume to munge the data.
If you should get the opportunity to look at a raw (DNS) NXDOMAIN passive DNS (PDNS) feed there's a lot of plain brokenness, but the nuggets can be truly alarming. This is what happens when translating between naming services: naming services typically have application domains, and names in one context are interpreted differently in another. Bobby Tables is well known, but how about that special file "-rf"? Was a time when the happy path for Active Directory essentially trusted DNS domain names implicitly for things like file shares. Sounds ok until you realize executable files might be on those "drives".
(Honestly I don't find the string "MS-DOS" anywhere in that document.) (Edit: Did find the reference to e.g. CON, LPT1...)
Not that it has been relevant in last 2-3 decades tho.
The message bodies of SQS messages has restrictions on which whitespace characters can be used.
BTW, i think an irc bot is a good target if you are starting to learn writing a network program. The protocol is really simple(don't need complex xml parser...etc) yet requires all technique you need to write a proper client.
The reality? Nobody cares. Even for most tech related communities. Most people just want somewhere they can share a join link to other to allow other to join without hassle.
Given similar people, similar collapses can happen to Discord or any other communication medium of your choice.
But I expect IRC will still have its users.
That’s like comparing the US empire to the Roman empire. They haven’t been around long enough to talk about popularity.
To 'become' horrible there has to have been a period where it wasn't. AFAIK that doesn't apply to teams, lol
Your chat app is great but imagine if we can send/share audio clips too.
Your chat app is great but imagine if we can send/share video clips too.
Your chat app is great but imagine if we can send/share live video too.
Your chat app is great but imagine if we can send/share money too.
Your chat app is great but imagine if we can send/share conference meetings too.
Your chat app is great but imagine if we can send/share calendar invites too.
Your chat app is great but imagine if we can send/share food delivery requests too.
Your chat app is great but imagine if we can send/share gaming sessions too.
Your chat app is great but imagine if we can send/share X too.
There is no limit on X. The internet is about sharing X. a chat app is about sharing X. There is no bound to how much it can grow really.
It's no coincidence that my favorite note taking app is ... Apple's Notes App. I've used other apps but I've found that all that heft from all the extra features makes it more of a hassle for me in the end.
I get how it happens, even my current employer / small team are looking into internal documentation routes and ... oh man the list of things people want just goes on and I fear leads to some beastly solution.
Have to respect MS' backwards compatibility fanaticism. Impossibly as if a native port of MS Teams would be created for MS-DOS 3.1 (hahahaha). When more plausibly the MS Teams servers run on an ancient crazy proprietary MS-DOS 3.1 mainframe (still implausible, but hey).
I know that this device name restriction also applies to Windows file names, so it's not that surprising (if you are inclined to be less fun than possible), but if you like fun, you can pretend the former.
Relevant frag link: https://learn.microsoft.com/en-us/microsoftteams/limits-spec...
FORTRAN originally had the same limitation for function names, and that lead to some classics such as GEMM and SAXPY.
All kidding aside, but I gave up on this argument because I think people either get it or don’t and aside from trying a little conversation or something with guidance it’s a “can’t fix stupid” situation.
People usually want to explain why it’s so important and that’s worse than suffering their long function name.
I think it’s better to just accept ridiculous than to try to get consensus on what’s ridiculous and a spiral of wasted time.
The upside is that it doesn’t matter any more since long function names are supported and work. And autocomplete means it’s just as easy to use as “ATOPOIRA” or whatever madness they would name it with some restrictions.
But that being said, you're the reason why file systems are abstracted away more and more with all file system queries force fed through some kind of search engine.
Citation needed. I'm pretty sure the reason that happened is that Gen Z (and heck, definitely a good chunk of my millennial generation too) weren't ever taught what files and directories even are, so for them to be able to manage, product designers moved to a combo of "Your documents live inside the app you made them with" and "You search for your documents and they'll come up." Notably though, they never solved the other problems the filesystem solves, such as "but where are my files actually, I need to move them between devices or give them to another person."
Still, it would have been nice if a standard metadata format could be included with each file, in a way that survives file transfers.
A spotlight search for Chevy I get every document on my system that ever mentioned Chevy in random order. Maybe 1000 documents (or 10,000 if it helpfully decides to pull in e-mail, and thus picks up 9,000 marketing emails). If I search names for Chevy I am going to find the file I mentioned and any others where a human decided the file was about a Chevy. Same for Jane. If that's my partner, adding her name will just pull in every document that's ever mentioned her, like every tax form ever. But files named after her is a much smaller set.
Woah, your examples: https://www.ibm.com/docs/en/essl/6.2?topic=vss-saxpy-daxpy-c...
Actually scripts breaking if files or paths have a space in them seems to be a thorn in the side of dev/ops/it folks that never goes away, does it?
Only because they were started to hit MAX_PATH there:
C:\Users\Johnathan Aparecido da Silva\AppData\Local\ASUS\ASUS System Control Interface\AsusSoftwareManager
C:\Documents and Settings\Johnathan Aparecido da Silva\AppData\Local\ASUS\ASUS System Control Interface\AsusSoftwareManagerI used it to hide my old virus/malware collection, made from what my computer was infected with through the years.
For example:
D:\test>dir
...
08/10/2023 09:29 AM <DIR> .
08/10/2023 09:30 AM <DIR> Foo Bar
08/10/2023 09:35 AM 79 Foo.bat
...
D:\test>dir "Foo Bar"
...
08/10/2023 09:30 AM <DIR> .
08/10/2023 09:29 AM <DIR> ..
08/10/2023 09:35 AM 79 Foo.bat
...
D:\test>type Foo.bat
@echo off
echo Executable: %0
echo Path to executable: %~dp0
echo Params: %*
D:\test>type "Foo Bar\Foo.bat"
@echo off
echo Executable: %0
echo Path to executable: %~dp0
echo Params: %*
D:\test>Foo.bat hello
Executable: Foo.bat
Path to executable: D:\test\
Params: hello
D:\test>Foo Bar\Foo.bat hello
Executable: Foo
Path to executable: D:\test\
Params: Bar\Foo.bat hello
D:\test>"Foo Bar\Foo.bat" hello
Executable: "Foo Bar\Foo.bat"
Path to executable: D:\test\Foo Bar\
Params: hello
D:\test>
Mess up the quotes and you're executing something one level up.(btw most IT folks prefer powershell, if only because all the management tools are powershell modules)
Related, any time I join a new group, that uses bash in any capacity, I introduce them all to the `shellcheck` utility [2], and run a shell script of the person with the largest ego through, as a "demo".
[1] https://stackoverflow.com/a/9838604/1487072
[2] Online version: https://www.shellcheck.net/
About a decade off: MS-DOS was running on 8086 in the early 80s.
if(version.StartsWith(“Windows 9”)) {
/* 95 and 98 */
...
}I found GetVersion[1] but that returns the version as two numbers.
[1] https://learn.microsoft.com/en-us/windows/win32/api/sysinfoa...
But maybe it's more about what everyone else might do with a channel name. Ie they might cut & paste it anywhere, and I guess windows users aren't expected to escape their own strings when pasted into cmd or powershell or wsl.
Creating Sharepoint shares which can be mounted as network shares in Windows where these filenames are not allowed?
copy con lpt1
And
copy con: lpt1:
were interchangeable. If they’d chosen to not save users keystrokes and force colons when referencing devices, I’m not positive, but I think it would have eliminated the need for many of these reserved words in file names in general.
Also, side note, the “copy con outputfilename.txt” idiom is one that I still can’t ever remember how to do the equivalent on UNIX/Linux!
cat > outputfilename.txt
Yet you said it twice[1].
COM1: I/O port 0x3F8, IRQ 4
COM2: I/O port 0x2F8, IRQ 3
COM3: I/O port 0x3E8, IRQ 4
COM4: I/O port 0x2E8, IRQ 3
I also remember, there was a while where there was no IRQ sharing. So some machines couldn't use all the COM ports available. Or you'd add in like a modem, and would have to disable the onboard COM port if it was using the same IRQ.> forms, CON, CONIN$, CONOUT$, PRN, AUX, NUL, COM1 to COM9, LPT1 to LPT9, desktop.ini, _vti_
If they have to restrict those because some user input is going straight into their FS, then they mucked up. Probably should have been given a safe ID (perhaps uuid4, perhaps something more like a digest of the channel name instead of using the user input directly.
For me it's a smell when someone says "You cannot use these characters". I automatically think "Why not? You're not using this unencoded or plaintext, right?" eg passwords, or usernames, or content that will show up on a webpage like a comment or such.
This all being said, perhaps it's just an easter egg gone sideways... Perhaps they were just trying to have a bit of fun :)
"rm -rf /*"
Wait, I've got better: that rm -rf, but written "fr- mr" with RLO left/right overrides.Surely that is something to aim for because nothing shall ever go wrong?
Thankfully having a file named https://example.org is illegal in Linux (and Windows too right?).
Seriously: is this a problem of you? And if it's a problem, where do you draw the line?
What about codepoint 0? What about Hangul fillers and RLO characters: do you think applications who refuse these do suck?
There are, thankfully, limitation on what filenames can contain. And I think the restrictions aren't anywhere near restrictive enough. Same for usernames, same for channels, same for oh-so-many things.
Does anyone really find it problematic that, say, Twitter only allows visible alphanumeric characters and underscore? (and 15 chars max)
This seems very smart to me. I take that any day over longing for people being able to use poop emojis in their usernames and channels names.
It's been a while since I've used Teams+Sharepoint, but I vaguely remember being able to have a Sharepoint workspace per team channel, and then being able to mount those workspaces as a shared/network drive. Stuff that might end up in the workspace is like... shared/uploaded files or something?
It's been a while since I've used Teams+Sharepoint, but I vaguely remember being able to have a Sharepoint workspace per team channel, and then being able to mount those workspaces as a shared/network drive. Stuff that might end up in the workspace is like... shared/uploaded files or something?
This is correct. Every channel is backed by a Sharepoint folder (maybe this is configurable?) that contains stuff like uploaded images, videos, recordings and transcripts of meetings, etc.If someone shares a file on a channel, you can open it in chrome. But you can't share any files yourself, because either the upload button doesn't work or when it does it looks like you shared the file in the chat for a split second then it dissapears.
So my company can only have 25 “general” teams.
I think it would be neat to learn the rationale behind some of these settings.
If you are participating in 25 teams, it's likely already too many, general or not.
Having to navigate 25 teams that are full of stuff doesn't concern you sounds like an absolute nightmare.
You'd burn out everyone in the organization with a setup like this.
But I think it’s funny that someone said “20 is not enough but 30 is too many.” And then implemented it.
Setting such an arbitrary limit so low is what is interesting to me. Fight for an opinion of “none” or “one and only one.” But allowing the hellscape of 25 teams where people accidentally invite all employees to their meeting, but not allowing 100 teams is funny.
Perhaps they should rethink the use of numbered superscripts for notes in that table....
But 'forms'? Why is 'forms' a bad word?
But... Why not just call it "_forms" or ".forms", which are already prohibited due to the first character?
Also, you might be interested in this: https://youtu.be/1NqRbBvujHY?t=2236
Likewise, in the Canadian House Of Parliament, the width between the Prime Minister's desk and that of the Leader Of The Opposition is said to be that of two swords raised, tip to tip, based on the British House Of Commons tradition that they must remain ''two swords and one inch apart.''
Usually such bypasses are great for these towns, as it removes most of the articulated road shipping that needs to pass through there, and generally makes it a nicer place to be.
This is done under the guise of preserving shareholder value.
These circumstances were not a thing for Roman legions until they reached spain at least, possibly North Africa and the Middle East. As a result they were not part of Roman war doctrines.
On the other hand they were very much part of bronze-age Egyptian and Hittite armies.
An other factor to their lack of appeal tho may have been improvements in horse riding technique and gear, as well as training. Riders can also be heavily armed, but have less travel restriction, and you can field a warrior per horse rather than need two horses and a driver per.
Get a height map of Spain and you can obviously see that a chariot trying to ride at Picos de Europa would be a nightmare.
But Roman warfare was a no-nonsense kind of affair, so no chariots. https://acoup.blog describes this really well.
Yeah, we are talking about Microsoft here.
I guess some people will pop-up from nowhere and disagree with your rationale, but it is flawless. Everybody loves the stability anyway.
AFAIK those still can’t be used as file system names, so I’m assuming it’s related to that.
Tim Paterson’s Revenge.
That's it.
Highlight some text, right click and select copy. Teams copies some other random text and not what you highlighted. Grrr!
Any product that can't even get basic copy and paste right is garbage in my opinion.
The only reason people use it is that it's bundled for "free" with MS Office.
Having to escape everything or replace names with stable guids is not a good relpacement for storing \whatever\logs\channelname or whatever the need may be. Especially for systems that are hard bound to windows filesystems or Sharepoint to begin with.
I bet there are apps on other OS:es where you CAN name things a "\0" sequence or "/" and for each such app I imagine there are people who regret making that possible.
Maybe alongside the school of computer science at universities we’ll have a school of computer archeology and a school of computer ethics where we’ll be taught not to use negative reinforcement for AI training…
"some horrible $MS product I don't use does some horrible $MS-like thing"Still incredibly sad, but not as insane as if you couldn't use the names inside a chat.
Imagine if you add a feature tomorrow that, on startup, has to run something in linear time with the number of channels you have. If the upper bound were essentially undefined (and not practically testable if it’s max int(32)) it could be that in practice your new feature makes it so that getting above 23,456 channels effectively disables the server due to a timeout in a critical part of startup. But if you’ve defined that channel limit, you can be confident that a feature like that either does or does not break things, even when at your channel limit, because you can test that.
c:\> copy CON: COMMAND.COM <furious streaming begins>
Not the baggage of DOS or Unix... Something modern and sensible without insanity of either system.
In seventeen syllables.
Is very diffic.
John Cooper Clarke
The older I get, the more I realize that we don't need a clean slate OS. If you pick any modern OS right now, the most annoying parts are never the parts that were from 30 years ago; it's almost always the newest thing.
It's impossible to make all the right decisions at the beginning any big project that never get changed.
Capability-based microkernels have been exciting research projects for decades, and Google has apparently made one that achieves acceptable performance, which was a significant challenge.