This sounds right but in reality I think something is missing if you end up isolating what you know and just keep coding. I worked with a guy who programmed for 5 years and wrote the same crappy code he wrote 4 years ago. If you don't know you're doing something wrong because even though you are solving problems the hard way to you you're still solving problems. If you are always pushing yourself and reading you learn there is a better way.
Clean code and clean architecture are great books. I find sql injection from kids fresh out of college all the time in php but to be honest I really can't tell the difference in that rails code. At work I've build a query helper function that takes a query string and a array of bindkeys/bindvalues and everyone must use this, easy logging, easy security etc...
In this articles defense something SHOULD have been done instead of all the books that came out of their years that start off teaching sql injection and then barely mention injection near the end. It is a bit silly we still hear of this problem and the ongoing amazon s3 open links. The solution is typically some start up but the original software should have fixed its own problem, why did we end up treating database queries as low level and as powerful as letting users toss in assembly code.
Not paying attention to details in general, I can spend what I want on aws, I have told them I can save them thousands and no one cares until we have a bad month. On top of that 2 times a year we lose a service because a bill wasn't paid , when does it kick in that there is a problem?
Long time Firefox user every since I left safari I tried Firefox and chrome and didn't like chrome at all. Now I only run some linux with Firefox but have chrome only as a back up to test or if YouTube has a glitchy anti Firefox day.
The immutable data they hold on us has always scared me. I have always imagined a middle man or "middle service" would be helpful. This service would be like a database and for my example I'll just use email addresses but imagine also passwords, birthdays, maiden names "encrypted of course" but that's beyond the detail I'll go into. This email service would let me tell the mailman my email is somethingUnique :myRealEmail@domain
Well if I start getting spam at somethingUnique:myRealEmail@domain then I can call the person out about it I gave it to "I'm looking at you Facebook". So some spammers now have that address but I can shut it down or change it, I also could have had a list of people who had that address and if they still use it I will still get messages. There's accountability and even though something static was given away it was only a "pointer" to a static item so that I can change the pointer. I should know who knows what, how they think they know it, have the option to take it away, etc. but that's not really possible when companies like equifax collect data on us and it never really seems like they ask, but I'm sure we signed our life away while buying a car and thinking about picking up chicks in it signing papers in a daze.
Rust calls it shadowing and throws this example:
fn main() {
let x = 5;
let x = x + 1;
let x = x * 2;
println!("The value of x is: {}", x);
}
Sure this is a syntax example and you shouldn't be creating Immutable variable x and then adding +1 to it for no reason. If you did have a reason you should add it to the variable name so it's more likely developers say let xPlusOne = x + 1;
Or a kitchen example:
Let cream = getRefridgeratorItem(cream);
Let whippedCream = blend(cream);
So you reply no sane language makes you do this but why didn't the author show that? His goal was to make things more readable but lets be honest functional programmers would judge you all day for making a promise and then copying over that promise with something else. You may do it at work but the purist trolls hate reading it.
When I started out it took a couple of books "c,c++,java" to realize most started from scratch and taught you functions and loops over and over and walked you through a simple program but I needed to find my own way to challenge myself. Eventually I just decided I wanted to build things and fought my way through documentation and the internet to get it done learning the challenges and problem solving. These days I look for more books on theory and from people who solved large problems.
What about the cognitive load on someone reading person1 person2 person3. Now I have to realize person 3 in your code is person2 and person2 was person1, person1 and person2 are now dangling and will never be touched again hopefully. I love the idea of pure functions but I have always thought there was a missing piece in functional programming.
Used hostgator when I was in college it was fun installing a php based terminal I could connect to through the browser and snoop around the rest of the shared hosting files outside of where I was "suppose" to be.
I said a certain site of my company should have https years ago and it was ignored until recently they heard google was going to flag forms. Some of us do know best but this leverage can be helpful to sink it into the thoughts of people above us.
Our CEO doesn't know what UX is and tried to get a marketing email designer to rebuild our whole tool. he figured the kid knows photoshop so he must know best.
I've mentioned it before but I had a "aha" moment when I found intercooler js, it would be awesome to have 3-5 JavaScript functions instead of always rewriting and building Ajax request. Only problem with intercooler is it expects HTML in return instead of json.
Wow didn't know there was a open source roller coaster tycoon 2 clone, that would be interesting to mod into some sort of server traffic representation.
For teaching a noob how to edit in commandline nano is always a go to for me. I often use vim if I want to show someone some code and don't want to look like a idiot fumbling for a mouse. If I'm on a long stretch of programming I prefer sublime for awesome multicursor functionality and prettier text than a terminal. Haven't tried this micro but if the config is easier to learn than the rest then that's a obvious plus.
I could go on and on about how my company screws this up. First, even though they get commission they also get large base pay despite a salesmans performance which makes the salesman stop working around making 70k a year, second horrible tracking of what the deal in each contract will cost our company in developer hours and hardware etc etc so they get paid full commission on a $20,000 that ends up being $4,000 revenue. What our company needs is a strict standard but it's a endless loop of oh salesman can make a sale if you can create this so stop what you are building and welcome to the chaos.
I wish we were only hiring experienced developers, hiring right out of school and having a manager that only wants experience out of school people is insane. Do you know what oop is? Have you used git? Have you ever indexed a table column to speed up queries? Any MVC experience? How comfortable are you with the language ? Do you know anything about sql injection? Have you used the inspector on a web browser before? Get half right and have a sense of humor and you're probably hired but we hire 2 in 20 interviews a year.
I enjoy challenging myself in little code golfing here and there and writing things as short as possible and sometimes trying to do as few lines as possible seems better. In reality f the line count and write more clear short horizontal lines so when someone brings up your code in a tiny terminal window they can still read your thoughts like a book.
Watching some functional programmers use immutable variables to show their intent of what they are doing was very helpful. Example :
Whippedcream = whip(cream);
Vs
Cream = whip(Cream);
Odd place for me to ask this but does anyone know what's with the ring of twitter user wth the usernames ending in gives,gibs, givs as in johnGivs, jasonGives as an example. They all say they will release account "methods" for Spotify, Apple, PlayStation , steam etc for retweets. I came across the pattern a few weekends ago noticing they say to each other they keep their accounts on ghost script and they were all mad it was down one night. Is this just a ring of stolen accounts or stolen account cards?
Functional programming made me start using static classes for manipulation and instances for basic array containers and cleaners. Besides that my job has memory heavy processing we try to keep low so to this date I can't see how immutable data wouldn't be more of a burden with lingering objects that are no longer used or need to be milled out. I did like how this article showed how returning a new variable represented the variables manipulation through name change.
Mostly emulating what phpMyAdmin can do, the time spent for a elasticsearch beginner trying to figure out how to clear a index without losing or having to rebuild their mapping is insane, basically the answer is just don't and just copy your mapping but if something could easily extract that and say flush index then awesome. Creating mappings is a nightmare if you don't remember what types they have and it would be insanely simple to do the phpMyAdmin style of create table where you type in a "column" name and then use the drop down for the type "string, date, geo point".
We do a decent amount of work in this, lots of scraping the web and extracting. Unfortunately we dont do it against pdfs that have any strict format or even a loose format at all, I wish it were government forms or any type of forms. Would you say the pdfs you guys are looking at have some type of format and the readers are just hit or miss?
Extra good point for security. It's easy for us to say we are using 10k security product to make 60k customer happy but we can also brag to any customer from there on.
Honestly leaving salesforce is a piece of cake if it weren't for the ecosystem of other tools and integrations. A few years back I did a simple export of all our salesforce data and made a demo of a salesforce clone and if that wasn't good enough it was easy to import into sugar crm. 1 out of 40 salesman complained it wasn't exactly the same so they stayed and went full force with plugins and now it's a web of plugins that's harder to escape. As soon as a salesman sees a ad for "this plugin will make your life easier and your job " it's done, they setup a demo with our CEO and beg for it like it's a Christmas pony.