1) It uses far too much screen real-estate. 2) I can't separate IMs and chat into separate panes that I can see simultaneously. 3) I wish there were more themes 4) Auto-scroll doesn't work correctly (at least in browser) 5) The app uses a ton of memory 6) You cannot persist conversation to outlook like you could with Skype for Business 7) You cannot message an entire group without joining their team's channel
the list goes on
Message threads become a mess in public team channels
Bottom line: for a business chat tool it is missing several features that Skype for Business/Lync and even Microsoft Office Communicator had
I disagree, it works for us. We also heavily use many Teams integrations with MS tools (Planner, etc) as well as other integrations (e.g. dev tracks GitHub dependency releases via Teams, Sentry alerts, Intercom messages, VSTS tickets). Support and marketing could integrate all their products (e.g. Trello). It's a central hub for the entire company that unifies tons of different existing solutions. It simplified just about every workflow in every team around here.
Our Groups are also Office groups, so you can message a group using Outlook -> Group or just using the Team's email address (Teams -> right click -> email address). Without joining anything.
@Poke Teams is basically a frontend for the company, not a chat tool (at least not primarily). It is much more aligned with what companies previously abused SharePoint + Office Groups for. Once you realize that, it will probably make your life easier. That is, if you are invested in the O365 ecosystem with more than just ExO :). There's much room for improvement, but MS also pushes pretty big updates to Teams very regularly.
I have a question, that I acknowledge up front is probably really naive: How would I make a simple interpreted script language? Degree of difficulty: I'm primarily a DBA.
Specifically, I'm thinking about making a "GolfSQL" that (primarily) defines really short keywords, then (when "run") simply expands them via simple replacement into fully-formed SQL 2017-compatible SQL code. It doesn't have to even be able to run the SQL, just transform my GolfSQL code into T-SQL.
I'm not even sure what platform or environment I would use to define those replacements, and how to get them to work the way I'm thinking
@quartata Well, that's the trick; if my keywords are made of symbols not normally supported by T-SQL (like some of the upper-ascii char sets lots of golfing languages use), then replacement should be (mostly?) trivial, right?
Yeah, if I define S = SELECT I could have issues, but if I instead define Œ = SELECT I shouldn't have much trouble
So, like æ*µtḊi=0 could expand (mostly trivially) into SELECT * FROM t WHERE i=0
(And since I'd be the one writing the GolfSQL code, I'll know to avoid putting characters like those into strings)
But the problem is that I can conceive of a list of replacement keywords and methods and tricks and stuff that would be really handy in GolfSQL, I just don't know where to DO it
@quartata That's... an extremely versatile suggestion...
@user202729 in T-SQL? Lol, that's the problem. Maybe I'll make a T-SQL table of potential replacements and loop through, applying either a simple T-SQL replace, or perhaps using C# for regex
Well, I'd likely include the "this is what my code expands into" T-SQL version of each for readability.
Plus, SQL is pretty efficient at some things, so with shorter keywords, it can certainly be much more competitive than it is now.
Plus, its a bit novel. T-SQL isn't rare on CG.SE, but it isn't that common either.
And depending on how good I get with the replacements, I can replace entire long phrases with single characters or combinations.
Like right now it is RIDICULOUSLY long to define a number table from, say, 0 to 100. But this is so commonly useful, I could easily define a keyword or pair like N(0,100). But that's not quite a trivial replacement, so may come later.
Thinking about it now, a trivial REPLACE from a T-SQL table of keyword/replacement pairs is the most obvious starting option (and the most solidly in my wheelhouse). If, at some point in the future I need more sophisticated replacement or actual interpretation of the code I can move to a different method or platform.
Plus, if I'm requiring SQL 2017 to run the resulting (transformed) code anyway, I might as well just make a SQL 2017-compatible table and proc to do the work for me.
One final question: are there other requirements before I can start to answer questions on this site using my (as yet undeveloped) "GolfSQL"? Do I have to write a meta-question with details of it? Publish the specs at GitHub? Make an available running version online somewhere?
Sorry, final question #2: CG.SE used to have a "no answers using languages created after the question was posted" rule. Is that rule still in effect? Do people still care about it? One of my favorite things is browsing old popular questions and providing a new answer.
Languages here are defined by their implementation. So, therefore, an implementation has to exist for it to be an acceptable language. It's OK if that implementation is a simple downloadable interpreter somewhere.
CMC: Given two alphanumeric+space strings A and B, and a printable ASCII string C, replace occurrences of A in C with B, except inside double-quotes. E.g. A:Hello B:Greetings C:Hello, "Hello"! → Greetings, "Hello"!
@EriktheOutgolfer Thanks, was never a fan of that rule. Abuse like adding a single command to produce the entire text of "99 bottles of beer" are better handled individually than by a blanket rule.
It's been a while since I've been here, and now it seems that nobody uses CJam or Pyth anymore. New languages have sprung up since then. Has that happened just naturally? Was there a rule change or something?
@Pavel A simple explanation is that the first half is transforming the text to a form that V can sort, and then the second half is sorting it and transforming it back
OK, so take this example. Let's say you wanted to delete the first word on every line (ignore that we can do this with ex commands). So basically we want to type dwj a bunch of times
So qq == 'Start recording my keystrokes into "q', and then we type dwj and q stops recording.
So if we want to run that a bunch of times, we can run what we recorded as if we typed it a bunch of times with <n>@q
And that conveniently stops running when we try j on the last line because that throws a soft error which breaks the loop
In my example, I had a recursive macro so that I could remove every [a-zA-Z] that comes after a space. That breaks once the regex doesn't match anymore. There might be a simpler way.
@quartata I'm writing a paper on swarm AI as it applies to the borg from star trek
specifically, how they have a 'queen', but are able to function perfectly well without her, comparing to other things like bees IRL and computer-thingys like boids
it's quite interesting to write and I may end up with some tweet suggestions for you
I just realized that this answer from two years ago is a snippet and not a valid submission. The OP is inactive, but it's a good solution and clearly took a lot of work, so I don't think it should just be deleted.
if the answer instead said it's in Python (but without any link to e.g. python.org), would you still consider specifying that implementation of C# valid?
@CatWizard I also like the idea of extending it to take potentially different values for Py and BF like your solution, could either make the challenge more interesting or unnecessarily complicated.
Android Messages for web: Press "Shift + /" to see the keyboard shortcuts.
Why this couldn't have been Press "?", I don't know.
100 tweets. 100 is a good milestone..here are some 100 facts
- the number of tweets i have is greater than or equal to 100
- 100 is an odd number
- 100 is a base-10 harshad number
- i was born at age 100 and age backwards
exactly one of these things is untrue. the rest is canon