IT/Software career thread: Invert binary trees for dollars.

Vinen

God is dead
2,789
495
I totally agree that making our own isn't a great idea. But I can hear the bitching and moaning right now if I suggest Javascript, Python, or anything else that doesn't originate from our loins. A few months ago we wanted to implement a more thorough logging system (just for diagnostics) in our application. Instead of writing our own I suggested Log4net (.NET port of the popular Apache Log4J framework). They recoiled in horror at the mere thought of that.

So, I'm working through this book on compilers and interpreters anyway for my own edification. It's actually pretty interesting.
Show an ounce of leadership and push people away from a bad decision.

Back it up, advocate for it and eventually you may be successful.
 

Khane

Got something right about marriage
20,314
13,961
ShakyJake. Is there any reason you can't convince your company to just use nHapi to "write your own" since you're already using VB instead of trying to create a scripting language (seriously? you want to create your own scripting language)?
 

Noodleface

A Mod Real Quick
38,245
15,030
I was going to question creating your own scripting language as well. Why reinvent the wheel when Python, et al, do it perfectly?
 

Noodleface

A Mod Real Quick
38,245
15,030
Welcome to every system architecture meeting ever.
Well sure, but I doubt many of those meetings include creating your own scripting language (and interpreter/compiler)

Edit: It's a slow week so I requested my monitors. I ended up with two 27-inch monitors.

I may have made a mistake..
 

Cad

scientia potentia est
<Bronze Donator>
25,345
48,549
Well sure, but I doubt many of those meetings include creating your own scripting language (and interpreter/compiler)

Edit: It's a slow week so I requested my monitors. I ended up with two 27-inch monitors.

I may have made a mistake..
Oh I sat in a meeting where they discussed essentially creating our own apache variant from scratch because Apache had too much cruft.
 

Tuco

I got Tuco'd!
<Gold Donor>
46,831
78,477
I find that those opinions usually come from 2 types of people:

1. People too dumb or lazy to learn tools like apache. And if you're too dumb/lazy to learn the easy way, you're too dumb/lazy to do it the hard way.
2. People who just want to make the component for the fun of it. In this case they'd love to make their own http server! These people can be a real problem even if they are exceedingly competent. I sometimes am like this, not with rolling my own bullshit (I love code reuse), but solving problems that don't really need to be solved for the fun of solving them. It's probably 25% of my time and it's awesome!
 

Cad

scientia potentia est
<Bronze Donator>
25,345
48,549
I find that those opinions usually come from 2 types of people:

1. People too dumb or lazy to learn tools like apache. And if you're too dumb/lazy to learn the easy way, you're too dumb/lazy to do it the hard way.
2. People who just want to make the component for the fun of it. In this case they'd love to make their own http server! These people can be a real problem even if they are exceedingly competent. I sometimes am like this, not with rolling my own bullshit (I love code reuse), but solving problems that don't really need to be solved for the fun of solving them. It's probably 25% of my time and it's awesome!
If those people do it on their own time, still contribute to the team, and then support their bullshit creation afterwards then I don't care. But thats never what happens. Invariably, they are totally MIA while inventing some bullshit thats totally unnecessary, and then they have to teach everyone how to work with it and fix it because they will undoubtedly move on to their next passion project and drop it in everyone else's lap. Then we get to fix all the shit thats wrong with it because OF COURSE YOU CANT REWRITE APACHE without having stupid ass bugs and shit that needs to be fixed for a long time.
 

Tenks

Bronze Knight of the Realm
14,163
607
Learning how to read an API and adapt 3rd party tools to your own specific use case is a skill set that I feel is completely divorced from actually being a good programmer. But it is a skill set that is equally, if not more, important. Chances are if you need to do something complex at your job someone else has needed to do it before and has a pre-existing framework you can leverage. Sometimes they'll be more fleshed out than others but in general if your first instinct is to do it yourself you're doing your career, team and company a disservice. It may feel like you're accomplishing nothing for a week trying to figure out how to get all this shit to work and play nice for your needs but then once you get it all working together you have actual tested and community supported code.

Case in point my company has a research division. They used to love to do things without 3rd parties but have recently been leaning more towards using them. They built a very specific tool to try and map some relational data together. I think it took them about 6 months to get it up and running. I knew there had to be an easier way so I started to do some research and found out they are already producing RDFXML representations of this information and dumped it to HDFS. I found another tool call Titan which had the ability to hydrate a NoSQL backstore with this RDFXML, relate all the edges and vertices and it also offered a RESTful API to query it. It took me maybe 2 weeks of just kind of dicking around to get it to work (and it wasn't prod ready, my example used Cassandra and it needed HBase but the HBase connector wasn't working right -- also for some reason the ElasticSearch wasn't working just the "I know ID=123456" REST api) but it actually did a better job of mapping the data together. If someone would have just asked me before they went balls deep in their own solution I could have tipped them off that there are 3rd parties out there that do what they need. It also exposed a pretty cool interactive map of the data that was fun clicking around on.
 

Tripamang

Naxxramas 1.0 Raider
5,372
32,628
ShakeyJake no idea if this will help you but~

A large part of our company's platform is HTML5/JS based, but I primarily design the back end. About 3-4 months ago we were looking at how we could improve our UI code quality and encourage more people to be full stack developers. Most of the back end devs here hate JS because it can be difficult/time consuming to diagnose issues with it, especially the ones that compiling in something like C++ would catch. Another issue they had was the spaghetti nature of events/change tracking that can happen, where our UI would fire off one event and tons of things would happen that weren't readily evident.

So we settled on using ReactJS/Flux to improve our event handling and really make the code easier to follow. TypeScript was the big one though, with a little work all of our JS now compiles, issues warnings, errors for bad parameters etc. It works by allowing you to specify types for functions, define classes etc in a language that's very very similar to JS and it'll let you compile that into final JS code to use in production that has all those extra elements stripped out. We're still working through converting everything over but so far the back end developers assigned to help have done a 180 on JS/HTML5 development and shockingly say they enjoy it now. I personally found typescript took a lot of the annoying syntax errors out of the picture and just made developing in JS way nicer/more predictable.

Being able to sell our back end devs on developing in JS was huge for us, as our projects tend to see-saw between being UI heavy and back end heavy.
 

ShakyJake

<Donor>
7,885
19,828
ShakyJake. Is there any reason you can't convince your company to just use nHapi to "write your own" since you're already using VB instead of trying to create a scripting language (seriously? you want to create your own scripting language)?
Again, they will reject pretty much any library or framework that Microsoft doesn't directly bless. Instead of nHapi, they created their own HL7 parsing library. We just had an overview of it a couple weeks back so I haven't had the (dis)pleasure of using it yet.

The problem with our current HL7 interfaces is that they are executables that are compiled from modifiable source codethat resides on the client's server. And this source code is Visual Basic6, not .NET. Very old and the clock is ticking to when MS will no longer support it. The company wants to eliminate this for good reason. Problem is, they want to replace VB code with a GUI-based mapping tool. Due to the near infinite variations with the HL7 implementations out there, trying to reduce it to a GUI toolwhile trying to maintain the same level of customization as codeis a fool's mission.

We definitely need to chuck the VB stuff. No doubts there. However, I feel it should be replaced with an embedded scripting language that is platform agnostic -- such as Javascript, Python, or even Lua. Fast forward 20 years now, if we need to re-write the engine to some other platform we canprobablystill use the existing scripts. That's the major problem we're facing now. All those VB6 scripts will need to be rewritten to something else.

BUT, I can hear complaints now of using one of these general-purpose scripting languages (again, not MS "approved"). It may be more palatable to them if we were to create our own, small, domain-specific scripting language. Essentially that's what they're wanting now, but just confining the user to a GUI tool rather than allowing them to type it out.

TypeScript was the big one though, with a little work all of our JS now compiles, issues warnings, errors for bad parameters etc.
Yeah, we're familiar with TypeScript. We'll definitely be using it.
 

moontayle

Golden Squire
4,302
165
Didn't know this battle was raging but I guess back in 2010 after Oracle bought Sun they sued Google for using Java APIs as part of Android. Google responded by saying APIs can't be copyrighted since they're essential to software development.

But I guess not too long ago a commit appeared to the Android codebase which indicates they're moving to using OpenJDK, the open source version of Java. Speculation abounds that this either signals a settlement in the case or Google is hedging their bets in the event Oracle wins the suit.

Good rundownhere.
 

Tenks

Bronze Knight of the Realm
14,163
607
I thought Android has been moved off Sun's version of Java for a while now? I do recall the case and I thought that Google just decided it was easier to get a different fork of Java than fight with Sun.

-edit-

Orcale not Sun
 

Vinen

God is dead
2,789
495
I thought Android has been moved off Sun's version of Java for a while now? I do recall the case and I thought that Google just decided it was easier to get a different fork of Java than fight with Sun.

-edit-

Orcale not Sun
Oracle ruins everything they touch.

MySQL, Java... even their own fucking database.
 

a_skeleton_03

<Banned>
29,948
29,763
So I have come here back to this thread to admit something.

I took this stupid coding class because I had no choice. I don't really understand coding and never wanted to.

Over the past couple weeks though ... I have been thinking about it. Thinking that maybe someday I might be interested. Looking at coding books and thinking about reading them. I feel gross inside.
 

Lendarios

Trump's Staff
<Gold Donor>
19,360
-17,424
as a hobby past time, it can be very rewarding.

Something simple as organizing all your MP3, by folders!!