IMHO this article could have done a much better job of saying “don’t blindly trust the framework but also think about how things work underneath”.
I do get the point that the author is trying to convey. But unfortunately the language that’s used and the tone in which it’s conveyed makes the advice come off wrong-ish.
It took me half way through the article to realize the author is probably serious. The tone of the language lends itself to parody very well.
I agree. At first, when I read the title, I thought “ohh.. We’re just going to disagree on this one…”. I had to maintain countless Python application just doing SQL/CRUD and the previous engineer either glued Flask and SQLAlchemy together in a bad way, or worse invented their own framework based on WSGI. And every-time, I just migrated it to Django with half to a tenth of the original lines of codes.
Then, I read the article, and all it says is “please understand how frameworks work under the hood”. Which I totally agree with, and that’s what I always teach juniors when I train them with Django or Flask.
In a nutshell, the title is totally clickbait.
I’m not apart of the data team for our ecommerce stuff, but we take a very similar approach with a few differences:
Our newsletters and engagement are actually offloaded onto Hubspot. Hubspot uses a lot of these techniques to tell us about top customers, abandoned cart emails, custom emails and newsletters, and other stuff I’m forgetting because I’m not on the marketing team.
The second big difference is our use of BI software. Specifically Tableau. It will essentially make those queries to find out information about our customers for us, and then display it on nice graphs and dashboards for the managers to swoon over. I haven’t gone over the marketing material for Tableau, and I’m sure they sprinkle ML/AI in that copy somewhere, but the reality is that it just connects to our databases and makes queries.
The more I do it as a profession the less I like doing it at all. I was a hobbyist for a while but since becoming a professional I find my hobbies have swayed drastically into media and art. I spend a lot of time producing podcasts, doing stand up, producing music, etc. I never code for fun on my own any more.
Don’t get me wrong though, I enjoy finishing projects, figuring out complex bugs, and implementing feature requests. But I wouldn’t say I have a passion for programming or software development. I have a passion for creating.
Wow, this is actually awesome! I haven’t been inspired to do any frontend work in a while and this is exciting. If I can find time over the next few weeks I’m going to take this for a run.
Is there a publish date for this I’m not seeing anywhere? It talks about PHP 4.3.0+ which has been dead for a number of years (more than I decade I think?) That being said, I love articles like this had explain in-depth how a language works.
This is basically a hieroglyph, it’s from 2005. I believe it’s part of an ongoing magazine called php architect though, so you could check that out.
I have a comedy show I recorded last monday to do post for and edit. I started a new podcast with a fellow comedian over the weekend - the basis of which we watch sequels to film franchises, hopefully without seeing the first, and do a companion/riff trax cut, and then a 30minute review episode. My other podcast released an episode where we interview Martin Wallstrom (listen to it!). I am giving a small 5-10 minute talk at a coder meetup on wednesday about softskills for IT professionals and students.
At work we’re slowly chugging along with magento 2 integration into our production facility. Its going much slower than I anticipated.
The product that I’ve been working on for the better part of a year is going into production this month. This week, we’re figuring out the deployment automation parts. We’ve decided on Terraform, so we’re learning about it and finding a lot of solid examples for how to deploy our several services to AWS.
What’s the stack you’re working on? Our team has looked at Terraform and Cloudformation in the past but decided on using Jenkins and Ansible instead. Working with NGINX, PHP 5.6, MySQL 5.6, Redis, and Cloudfront over here.
Mostly Scala: Scalatra + Jetty, with no database for any part: two apps are acting as A&A for S3 buckets, while the other is A&A for a Kinesis sink. We have another part that’s Rails atop Postgres but we’re keeping it in Heroku until we get the other components stable. There are some other teams within my org that are Rails shops. Everyone’s doing something a little different so we’re going to powwow in June about a unified deployment methodology and platform.
Work: rewriting a major service for our production facility to keep track of orders coming out of Magento, conducting a few code reviews and design meetings, researching product and customer migration from mage 1 to mage 2, working on a small talk I’ll be giving in May about soft skills at a local code meetup.
Personal: editing a comedy show recorded on thursday, recording a show tonight, releasing super special episodes of my current podcast, working on some up beat cheery theme music for a friend’s podcast, hitting the open mics on Thursday.
Work: Attempting to do some pair programming with a colleague to help flesh out some service integrations into our new Magento 2 instance. Move my code out of a monolith repo into module repos to utilize composer (and stop fucking with environment related issues), finish up some tickets I have been sitting on.
Life: Writing comedy, editing comedy, sleeping, and hopfully cooking a god damn meal for myself (its been weeks!)
I’ve been getting pretty excited about DI as I dive further and further into the Magento 2 landscape. Magento 2 has a lot of legwork involved with DI but once it clicks with you, you realize how powerful it is. Its set up with a bunch of XML files, and you use typehints in the class constructor to point to interfaces you’d like your class to work with. When you compile the DI, it read all the XML and associates interfaces with concrete classes (a global di.xml file), and then does some static analysis to see what class needs what other class to be constructed. That’s all abstracted away into an object manager.
What makes this powerful to me is that you can overwrite the global di.xml with a “local” di.xml which lives in your module’s namespace. The overwrite redefines which interfaces point to which classes, so you can implement say, your own LoggerInterface, and inject that into your own Observer.
Wake up anywhere between 600 and 900. Either make coffee or grab one from a local cafe on the way into the office. Or don’t go to the office at all, depends. Check emails. Attend meetings. Code. Debug. Meetings. Listen to JRE or a radio broadcast of a ball game. Code. Head home anywhere between 1600 and 1800, and either go grocery shopping, grab some soup or a burger, or head straight home. Work on audio stuff if I have any to do, or go out and grab a drink, hit some open mics, or stay in or whatever. Watch baseball, and probably work on some music while doing so. Sleep.
My days are wildly inconsistent other than I am available for work between 930 and 1630. Stark schedules bother me and make my brain feel dull and stale.
Do I even code anymore? I’m editing a video for work, debugging this obscure bug in our current Magento 1 instance, and organizing code reviews and trying to get environments for mage 2 built. Maybe I’ll write some code this week, who knows!
Personal stuff, I just got a Korg EMX so I’ll be working on some loops and samples, possibly even some tracks on it. Need to get in touch with a comic friend of mine about doing his album soon. Possibly doing some stand up sets out of the city this week, time permitting.
This isn’t news to anybody who has to be involved with Node.js development. This is also an NPM issue, not a Node.js issue, despite how tightly coupled they are. There’s alternative package managers out there (Yarn) that try and solve these problems.
Do the alternate package managers use an alternate package repo?
An “ecosystem” that encourages and embraces “modules” to check if a number is even, and then another one to check if a number is odd, needs more than a different CLI tool to download the same shit code.
I don’t disagree with that last statement of yours at all. I’m just saying Node.js isn’t really the problem in and of itself, and there’s people in the Node.js world who are actively looking for better solutions to these problems.
And to be fair, its not really shit code, its just run of the mill average code.
I’d argue that it is shit code. Shit doesn’t mean its faulty. Good code is both functional and uncomplicated.
The isEven/isOdd shit is deliberately written to use a bitwise operation which makes it a lot less obvious what it’s doing, for this reasoning:
everyone knows the i % 2 === 0 solution, I was trying to have fun with bitwise operators
And frankly, JavaScript itself is part of the problem - “is-number” has 10 million downloads for the last 7 days.
This microoptimization is silly because JavaScript runtimes recognize modulus by a power of 2 and change the generated code accordingly.
The V8 code to do this is here.
The ChakraCore code for this is here, search for isModByPowerOf2.
SpiderMonkey appears to do something similar but the code is harder to track down.
You raise a good point. In that module’s repo, there’s a comment that reads:
Since it is ending up as a dependency of things like Webpack now (insane as that is), I would hope it would actually behave as expected given the name.
This is cool, AFAICT it’s basically their existing container-tab feature (which requires no extension), and the only difference is that it automates the creation of a container for Facebook, so that whenever you load Facebook it loads in the Facebook container tab.
This is great, but even better is this amazing extension called “not using Facebook”.
Its a real shame some of us have close friends and family who don’t care about digital privacy and use Facebook to communicate. The container is a great idea (and good on Mozilla for putting it together!) So not all of us can use the ‘not using Facebook’ extension. ¯_(ツ)_/¯
Disclaimer: I also don’t care enough.
I have plenty of friends and family who use that website and they’re all happy to communicate using other methods like text message, email, even Signal.
I’m sure you do have plenty of friends that don’t mind communicating that way. I do not. I do use signal as my primary SMS driver however and am a big fan. My point is that dropping FB as a communications tool is a case by case study. I don’t think I can’t convince moms to use something else to video call me while she’s already on FB talking to her quilting friends.
I’ve quit facebook more than 5 years ago, and I’ve tried ever since to convince others to do so as well, but to paint it as anything simple is ignorance of how deep its roots now run in a lot of communities. Even I still rely on facebook indirectly to find out about events through friends who are still on facebook. I’ve also lost contact with a lot of old friends, and while I see that as no problem, since the friendships that mattered to me still persisted, I can’t ask others to accept the same. With no clear alternative in sight, asking people to quit facebook is akin to asking people decades ago to get rid of their landlines. You’ll need more than “facebook is watching you”.
This is very true. If Facebook was just a creepy surveillance system designed to sell you ads, no-one would use it. For many people, Facebook provides value - connections with friends and family, the ability to communicate over vast distances, a place where you can, in some ways, curate your own personality. The problem is that FB offers this seemingly for free, while hiding the actual cost from its users.
I’ve done so and, tbh, I completely isolated myself from many friends. Not that I don’t speak to/see them, but that I miss lots of spontaneous opportunities. Like a picture with a drink saying “come grab a drink if you’re nearby”, that I don’t see anymore, or just basic events that I don’t receive anymore and is a pain to forward/update to people that are not on FB…
umbrellas will never keep you as dry as not going outside, yet they remain popular
I find “outside” to be a genuinely wonderful and interesting place for which I can think of no substitute.
that’s pretty much how i feel about my community of friends on facebook. (your other comment about friends keeping in touch via other platforms misses the third place aspect of facebook)
(your other comment about friends keeping in touch via other platforms misses the third place aspect of facebook)
By all means, make Facebook your third place of choice for you and your friends. ^_^
Really? I find it rather overrated. The rank grind’s mostly terrible, most of the map is just empty water and the graphics leave a lot to be desired (I think charging for the HD contact lens upgrade in-game while immersive is a very EA-style move).
Also the big event storylines are a bit far-fetched. I mean, putting a bright orange idiot in as president? Come on.
I installed this and I’m not even sure it works because it’s possibly mimicking my container-tab-Facebook setup so closely. Might need a new profile to examine the exact difference…
Comedy! I have some shows to edit and do post on (audio work, heck yes), I did some workshopping yesterday and will be at an open mic tonight.
Meetup presentation! I am working on a presentation for a local code club meetup some time in the summer. I’m tryin to keep the topic under wraps but it’ll have to be about working culture and not really about code.
Magento 2! All I do these days is slowly port our proprietary Magento 1 extensions in Magento 2.
We’re doing a lot of plumbing for a Magento 2 instance to work with our production facility whilst our UX guy works on our new designs.
I also have to do some post on a comedy show I recorded a month ago. Probably going to finish my Fleetwood Mac remix and start some more tracks that wont get finished.
instance to work with our production facility whilst our UX guy works on our new designs.
How’s Magento 2? I used to be a Magento 1 developer but have moved on once they announced they no longer support it.
Mage 2 is a hefty beast. All of the core functionality of 1 is there, but written in much more modern ways. They introduce a lot of new stuff too. I’m in a team of two and we spend a lot of our time deep diving the documentation (which is also a massive improvement over 1) just to figure out small things like how the front end development works. I like the platform a lot but its massive. A lot to learn.
What are some differences/problems on the backend that you’ve faced when trying to get it running in production? We breifly worked on Mage 2 when it came out. I was surprised by the DI, interface, factory structure of the modules. Also the fact that they replaced module registration from XML to PHP for a performance boost.
We’re still months away from Mage2 in production, but our stack is almost identical to how we have Mage1 set up so I don’t fear that will be an issue. I look at training our marketing and customer service teams on mage2 as something that will be a problem to face when we get to that point.
They also didn’t replace module registration - you still have to declare your module and version in an XML file. It makes the registration.php file a bit confusion, but all that does is register your namespace with the autoloader.
The way Magento 2 has approached DI is incredible I think. I don’t mind running a compile script on the sole fact that I just declare an interface for my injection and boom, it takes care of finding the implementation when the time comes to instantiate the object.
All in all, the more work I do on Mage2 the more I appreciate the efforts by their team.
Producing pod casts
The topic isn’t in my interest, but you seem like really likable guys, nice work.
edit: whoops, I misunderstood but still nice work.
Thanks! The movies podcast stars me and a fellow amateur standup (see the theme) and the other one is more of a weekly journal. Both are infants and I just want to raise them right.