|
Mike Hankey wrote: dark matter Dark Matter[^]; great series. A shame it only went three seasons.
Software Zen: delete this;
|
|
|
|
|
It was great right up until that bit where they time-skipped around the future. I could see the downfall of the series coming a mile away.
My current theory is that time-travel, if not baked in from the beginning, is a sign the writers have run out of ideas.
On the other hand, my daughter hates time travel in movies and shows because it's almost always done wrong. The episode where they went back in time was well done, according to her.
Bond
Keep all things as simple as possible, but no simpler. -said someone, somewhere
|
|
|
|
|
I enjoyed the series right up until they were able to insert a little card into their existing engine that allowed them to travel anywhere immediately. I know that FTL is imaginary, but I'd think that "blink" might have required a completely different set of physics requiring a new engine or something. My "willing suspension of disbelief" became unwilling at that point.
Outside of a dog, a book is a man's best friend; inside of a dog, it's too dark to read. -- Groucho Marx
|
|
|
|
|
I would rather use whatever language I am working with to perform the parse. As you just stated... regex is technically another small programming language.
I am not sure if you know this... but you can take a regular expression and use the Ragel state machine compiler[^] to convert it to C/C++, D, Go, Java, Ruby and even Objective-C. Interestingly... I do not see C# support.
Ragel Cheat Sheet[^]
Someone should probably write a little Visual Studio addon that takes a regular expression and converts it to a C# state machine... as it seems .NET programmers use alot of regex.
Best Wishes,
-David Delaune
|
|
|
|
|
Quote: I am not sure if you know this... I didn't. Thank you for posting it.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I could do that, since I already wrote several apps that do exactly that. The issue is it doesn't support backtracking because i don't like backtracking regex.
Real programmers use butterflies
|
|
|
|
|
regex is a tool.
regex is great when used correctly.
read the owner's manual, as with any tool.
no one should be afraid of using a tool to complete a specific task.
|
|
|
|
|
I am afraid of you, messing up with regex.
Quote: Or you can use them to generate code for state machines That's indeed intriguing.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
|
Reminds me of APL. The language of 80's modelling gods. Cryptic enough they had their own department.
At least in assembler we had a few letters for op codes.
Afraid? It's just too forgettable (for me).
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
I built a regex DOM for people like you.
Real programmers use butterflies
|
|
|
|
|
By Law we need to quote this XKCD.
xkcd: Regular Expressions[^]
I used to have this T-shirt, too: Regular Expressions[^]
Personally regular expressions are my indulgent cheat. Kinda like having pizza. I know I should go easy on them, and I'm trying to give them up, but when they are good, they are sooo good.
cheers
Chris Maunder
|
|
|
|
|
I would wear that shirt but then people would ask me what it meant and if I told them they would ask me to fix their computers.
Apparently I have no impulse control because I even use regular expressions for things they were never intended for.
Real programmers use butterflies
|
|
|
|
|
|
The only regex(-like) syntax I felt somewhat comfortable working with was SNOBOL
That was 30+ years ago. I first met it as a 200 source lines version of Eliza, the therapist, which fascinated me immensely. Obviusly, that version never passed any Turing test, yet: Try to write anything comparable in 200 lines of any ordinary, algorithmic language! So I started playing around with it, just for fun - I never used it commercially.
Actually, not too long ago I picked up the source code of an old SNOBOL interpreter, hoping one day to port it. It is currently #43 on my project lists. Tuits are hard to find nowadays, especially round ones.
|
|
|
|
|
I like using regex for day-to-day, throwaway things. It's especially good for reformatting text. I'm certainly not intimidated by them.
That said, I don't think I would ever use one in product code with a long life-span. You must admit that regular expressions tend to be write-only, which is a cardinal sin against those who must maintain the code, including your future selves. Code written very concisely, and regular expressions may be the ultimate in concise, require a lot of mental unpacking during maintenance. Unless you write a ridiculous amount of comments for the expression, it might not be worth it.
Software Zen: delete this;
|
|
|
|
|
I think it depends. I generally agree that complicated regex is mug's game. However,
How do you technically, and accurately convey a set of rules around lexical requirements?
Such rules must be able to be conveyed to other developers precisely.
Such rules must be unambiguous, and testable.
Such rules must be absorbable in reasonable amount of time, meaning no poring over RFCs if one can avoid it.
Imagine conveying the rules for what constitutes a JSON number
You can either say:
(\-?)(0|[1-9][0-9]*)((\.[0-9]+)?([Ee][\+\-]?[0-9]+)?)
Which takes some unpacking as you say, but is certainly readable.
Or I can give you a page long document of requirements around JSON number parsing.
Personally, I can read that quite easily, but that's me.
Let me propose something - there is a meaningful subset of regular expressions which are easy to understand, and can fulfill most simple lexical specifications like the above, or say, like an email address, or an url, or any number of small, structured text fragments.
It beats the alternative, hands down.
Real programmers use butterflies
modified 3-Jan-21 11:31am.
|
|
|
|
|
To my mind that regex would be okay. It's the thousands of characters, wall-of-text abominations that I object to. I know, that's an example of poor use of regex, but it's the kind of thing you find. Inexperienced folks start using it, and all of a sudden it becomes their favorite toy.
A toy that's all sharp edges...
Software Zen: delete this;
|
|
|
|
|
I won't argue with that.
Real programmers use butterflies
|
|
|
|
|
I feel like if I were in charge of development practices at a given shop and regex were used as documentation as i suggested strict limits would be placed on its use
For starters [^-]().+*?| is all you get. That keeps it simple, portable, and non-backtracking. You can easily generate flow diagrams from it.
And it keeps people from getting ... "creative"
Real programmers use butterflies
|
|
|
|
|
honey the codewitch wrote: it keeps people from getting ... "creative" KISS: Keep It Stupid, Stupid.
Software Zen: delete this;
|
|
|
|
|
we use regex expressions in production code all the time. almost always validation.
phone numbers, emails, web addresses, and other pattern specialized validation.
never had any issues.
performance has never been an issue and accuracy has never been an issue. most of the uses require zero maintenance after implementation.
|
|
|
|
|
I like it.
Compared to indexOf, substr etc. it prevents me from dealing with IndexOutOfBound exceptions. I use it often for validation or parsing.
I also use it for configuration: Providing a single text field containing a regex, e.g. for selecting files to process, it gives a lot of flexibility at runtime (yes, it requires some knowledge by the administrator, but it can solve a lot of (unforeseen) requirements without changing the application).
However, you shouldn't solve *every* problem using regex.
|
|
|
|
|
I make what could be regarded as "heroic effort" to avoid using regex whenever possible. However, I used it in a recent application because it was the most expedient way to do what I needed.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
Expedience is how it gets you. Next thing you know, you're hooked.
Real programmers use butterflies
|
|
|
|