Computer Science Lounge - [Too Many Idea Men Edition]

Its running at the time of this message. I am going to bed, if anybody knows stuff about Ubuntu server that may give some help please let me know why I might not be able to start this on startup. I will check here tomorrow morning to see the status of things.

@chiefshane You should take a look at the number of lines of code I've cranked out the last few days. Hammering out lines with a significant other wanting to talk for hours and a full time job is not easy.

1 Like

thats pretty impressive, especially as for C++. I just wish I had a significant other lol. I started working on a small project where I wanted to make a game loop with C++ and ncurses and try and simulate gravity. I am also going to a thing called Iowa Code Camp tomorrow. Then hoping that within next week I can do an update to Prospector.

1 Like

At work they gave a presentation of Kotlin? Anybody here use it?

It looks like an alternative JVM, or thing that compiles to java byte code. Not that interesting as far as languages go.

@chiefshane I've been working on a little something here for use at work. Not for me, but for our security team.

I'm making it with MeteorJS. First time using something like this.

1 Like

I created pull request for your Gravity repo.

1 Like

thanks, I was working on it at one point pretty late at night but my atom editor for some reason was becoming very slow. It goes fast now. I am hoping I can make more progress on gravity tomorrow. Today I am at an event called Iowa Code Camp.

1 Like

The only language less strongly typed than Bash. I can use it, but I'd rather not.

1 Like

I clearly need to get better at writing interesting titles

1 Like

In the demo it looked like it could process stats really easy. The OO part of it seemed weak though.

The company behind it did make it expressly to process statistical information, but it seems to follow a trend more recently of companies creating their own language and re-inventing the wheel when there are better alternatives. They should have just made a python library and everything would have been better, easier to make, faster to debug, and better architectured.

Their 'objects' are basically linked lists of strings that sometimes can be numbers. Its gross. It may make more sense with how they present it to someone new, but just about everything of that language screams "not made here" syndrome.

1 Like

Hello Software Developer/Engineer Wizards -

I have a very "101" software engineering question. What is the term used for operations that:

  • Result in an error,
  • Shouldn't be coded to fail execution, but rather
  • Continue to process, and log the error

I am in the planning stage of a project where my responsibility design/plan, execute the design-plan, and deploy a decently sized automated process. I am wrapping up the first stage by building a document which has my design-plan and would like to use the correct term for something. However, I'm not exactly sure the term to use. I'm hoping one of the software engineers here does.

Here a brief synopsis, which may help identify what I'm talking about:

Let's say you have 6,000 objects of a certain type. Objects of this type will be created/destroyed frequently. One property of this type is "Location." Location values are stored in a table. I would like to add an field to the Location table named "Unknown," where all objects of this type that have a location that isn't any of the other fields in this table are added as an item too. When process execution takes place I don't want the process to bail on that "error," but rather "flag" it, put it unchanged as an item in the "Unknown" field in the Location table. Blah blah blah, write process to monitor "unknown" field for entries, send me email when something ends up there.

Okay, hopefully you get the idea. I think the term may be "exception planning" or "identifying exceptions" but I'm not certain. Since this is a dynamically changing group of objects, which includes user input, I'd like to build this out to "future-proof" by "identifying [insert term] cases."

If you understand the term I'm looking for please reply, or if there is further clarifying I can do, please do the same.

Thanks!

1 Like

I think it still may be an exception. It just depends on how you handle the exception.

Okay - cool sounds about right! I'd just like to identify exceptions along the way and how they should be handled. I can code my way from there.

Thanks @chiefshane!

1 Like

But R is easy and fast. Maybe they didn't want to pull in a fuckton of dependencies to do the simple things they have to do daily.

I don't like not-made-here syndrome either, but R had a legitimate use case (unless you're a fan of breaking out fortran every time you want fast scalable stats) and the "just write a python/js library for it" attitude is just as toxic as dogfooding to our ecosystem.

R is easy and fast to run quick things on, and is of particular use if towards terminal applications or use cases. That being said, it has a number of deep rooted issues. Its back end was never designed with the same degree of care that other, more general and established, languages have. It at one point allocated memory for every iteration of a loop, not one after another, but as a monolithic block with each loop having its own section of that allocation. It cannot detect anything like compile time errors. And it still does require pulling a number of dependencies to do most people's work. R's execution speed still leaves something to be desired.

It lowers the barrier to entry for any such statistical computing, and usually those who do statistical computing have no business using the more complex syntax and features of more accepted languages in CS. That's not to say R is a peer to any of them. R is, in its entirety in comparison to these other languages, not as good. It has been made better for one very particular use case.

As far as I'm aware, these are "non-error throwing functions". They return information that lets the calling code be aware that they failed, but do not interrupt flow of execution. The alternative are "error throwing functions" in which the error must be "caught" somewhere, and this catching code is a interruption of the flow of execution because everything else the thread was doing is dropped to handle the error. I've not encountered a succinct word to describe these.

I think "exception" would be the best term for what was described.

An exception is used to catch cases where, you may encounter an issue that relies on something out of your control which could be in an unknown state. You throw and exception to inform your program that something went wrong with the resource that you are using. You then try to handle the exception by comparing it to known error vectors with that resource. If you are successful in categorizing the exception, you can skip to the logic that handles that case. If you cannot handle the exception, then you either bubble the error up through the program stack, it crashes, or you are now in an unknown state.

1 Like