|
title: Put the knife down and take a green herb, dude. |
descrip: One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com Using 89% of the same design the blog had in 2001. |
|
FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white. As an Amazon Associate, I earn from qualifying purchases. Affiliate links in green. |
|
|
x
MarkUpDown is the best Markdown editor for professionals on Windows 10. It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support. Features you won't find anywhere else include...
You've wasted more than $15 of your time looking for a great Markdown editor. Stop looking. MarkUpDown is the app you're looking for. Learn more or head over to the 'Store now! |
|
| Thursday, November 24, 2022 | |
|
From Christian Heilmann (via Om Malik):
(Aside: Just checked my local newspaper, hoping for a counter-example, and it's true there too. Even with my monthly, inflated subscription payments, I don't have access to the archives. Though I bet my local library does, as it did (natch) during the "library days".) This -- what ultimately boils down to the loss (or "unremediation") of [paper] ownership -- is, perhaps, why we need a more thorough Archive.org. Labels: archive, copyright, subscriptions, web posted by ruffin at 11/24/2022 09:49:00 AM |
|
| Monday, June 06, 2022 | |
|
Safari has responsive testing as part of its dev tools. I've used a similar trick of Chrome's, and it works well.
The only weird thing for me is that I've got macOS 12.2 on my MacBook, but Safari only has iPhone sizes through the iPhone 8. No iPhone X, no XR, no 11, no 12, no 13. That's weird, right? Yes. But it is also very Apple-y. They had a feature, they built it, they have not prioritized updating it, so it, well, not precisely withers, but sits on the vine, waiting for its next day in the sun. Weird.
That's it. That's today's post.
posted by Jalindrine at 6/06/2022 07:27:00 PM |
|
| Wednesday, November 18, 2020 | |
|
I got a new MacBook Air. The tools [that depend on npm, so, um, in a modern environment, everything] are not ready for you. You're not going to find prebuilt binaries. node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.4/fse-v1.2.4-node-v88-darwin-arm64.tar.gz node-pre-gyp WARN Pre-built binaries not found for fsevents@1.2.4 and node@15.2.1 (node-v88 ABI, unknown) (falling back to source compile with node-gyp) And you're not going to be able to build from source. In file included from ../fsevents.cc:82: ../src/constants.cc:93:11: error: no matching member function for call to 'Set' object->Set(Nan::New<v8::String>("kFSEventStreamEventFlagEventIdsWrapped").ToLocalChecked(), Nan::New<v8::Integer>(kFSEventStreamEventFlagEventIdsWrapped)); ~~~~~~~~^~~ /Users/SomeDev/Library/Caches/node-gyp/15.2.1/include/node/v8.h:3716:37: note: candidate function not viable: requires 3 arguments, but 2 were provided V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, ^ /Users/SomeDev/Library/Caches/node-gyp/15.2.1/include/node/v8.h:3719:37: note: candidate function not viable: requires 3 arguments, but 2 were provided V8_WARN_UNUSED_RESULT Maybe<bool> Set(Local<Context> context, uint32_t index, ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 2 warnings and 20 errors generated. The issues with nvm (you can only install the latest version of node) should have been a good heads up. This is not going to be pretty. /sigh So hack away at iOS, but don't expect to do your normal macOS web work any time soon. Labels: apple, apple silicon, npm, web posted by Jalindrine at 11/18/2020 01:51:00 PM |
|
| Thursday, January 09, 2020 | |
|
I don't recall when I signed up for it, but I routinely get a newsletter from Baldur Bjarnason about software development with a focus on web development. His new year's email includes some points on JavaScript frameworks that I'm suspicious I like because they so closely match mine. But what they so clearly indicate is that web development has become a field whose outward appearance and, all too often, local practice, has been completely co-opted by the needs of the largest of enterprise corporations. (Words in bullets are his. All emphasis is mine.)
He continues by comparing TypeScript -- and I think he means more specifically "enterprise TypeScript development", because there's lots to enjoy about TypeScript the language, nothing inherently evil about it -- to enterprise Java of 20 years ago.
Then he has a few points that serve as a sort of manifesto for the non-enterprise developer.
I'd also ask people to take a close look at how they define what's an SMB project and what's an enterprise project. That is, defining projects by the size of the corporation that produces them isn't always -- heck, isn't usually -- the best metric. Where something becomes "enterprise" is when you have hundreds of people working on the same project, in the same codebase. What npm/library-based bundling buys you is the ability to firewall smaller projects from each other. If someone writes a horribly inefficient page that no rendering library could solve without magic... ... your development process already includes a baked-in firewall to ensure that code doesn't adversely impact the rest of your system. You can stitch together completely independent projects easily, iff you really need to do that stitching. But how big is your day-to-day work, really? How many of the problems "solved" by mass package import could have been solved reasonably well for your uses with a (think what's often derisively called a "NIH syndrome-induced") roll-my-own, homebrew solution? Put another way, how many developers are really part of your specific product? If it's not hundreds, ask yourself how much time you'd save on developer ramp-up, maintenance, and new development if you too used "jQuery and plain old JSโmaybe with a couple of libraries imported directly via a script tag". Even in a team of "just" 20-30, the resource savings from going just 25% faster (a conservative cost of doing framework-style development in my experience) are unbelievable. I'm not sure I know when going "full framework" is the best idea. At a conference, some friends of mine (coworkers) managed to corner a guy who was then working at Google on AngularJS (before Angular 2+). We talked to him a bit about AngularJS' pain points and how they solved problems of large DOMs, as our Knockout.js-based system was getting crushed in our more dynamic, feature-rich UIs. His basic comment was that you can't fix these issues easily, and there was no silver bullet. Inefficient or complex UIs are trouble no matter where you build them. The problem here was browser performance, which by definition isn't an SMB or enterprise problem. It's a client-side rendering one. Frameworks don't fix these issues. "Full framework" dev doesn't provide solutions to day-to-day problems, it provides the passive coordination that allows the amalgamation of code from hundreds of developers working at once. Is that really the state your team finds itself in? Why would you want it to be? And then here's a final comment from Bjarnason about how the thinkspace of development has been dominated by the enterprises -- he does a good job in the balance of his new year's points discussing how we see so much enterprise-specific information because those enterprises have a vested interest in making that come to be.
Anyhow, it's a good, thought provoking post, and worth a full read. Labels: development, enterprise, javascript, npm, web, web 2.0 shiite posted by ruffin at 1/09/2020 10:06:00 AM |
|
| Monday, March 04, 2019 | |
|
I’d been meaning to talk about the stenographic macOS exploit for a while. It’s interesting, but doesn’t really seem to warrant the amount of press it got. The TL;DR for it seems to be, “This is a clever hack to recreate the sorts of exploit you saw all over the place five years ago pop back up briefly.” That is, all it does is hide some code that can would’ve been fingerprinted as an attack. You still have to download something stupid (afaict) to be compromised. Let’s hit the high points from the security blog post: Here’s how the exploit operates:
And here’s the secret code in action that reads from the image and pushes it into an eval:
That should do it for you. It treats the image as a data stream, decodes some characters, and Question: Why do browsers still allow (Okay, there’s probably something where on-demand loading with As the blog author says…
That’s really all we’re doing… we’re using an image for encoding a payload, and security folks hadn’t thought to sniff those yet. The rest still has to trick you into opening something you didn’t ask for before you’re compromised. That is, there are other checks to prevent immediate failure. Btw: This is why you have to turn off “Open ‘safe’ files after downloading” in Safari. You can be made to download files, and you don’t want to hand them automatically to another security issue. This is a natural progression. Not really much to see or learn here past that. posted by ruffin at 3/04/2019 08:32:00 AM |
|
| Wednesday, February 14, 2018 | |
|
I've been setting up a new greenfield project, and wanted to use not exactly a new stack, per se, so much as an "all-star" stack that'd capture the lessons I've learned coding recently. For me, that means it needs to be pretty straightforward, minimal dependencies, and minimal compilation. The fewer libraries and snowflake server requirements, the better. On first take, after bypassing Node, which really is the winner,1 my guess was that my all-star stack would be...
VueJS was difficult to pick. I've used React, and almost solely React, for the last year. I like it. But I believe it contributes to monolithic source that's not necessarily factored well. The more interdependencies your code has, the more maintenance is an issue. And doing good React essentially requires, at this point, using Babel, and as soon as you're transpiling, well, the surrounding tooling and library dependencies skyrocket. Not to mention that debugging transpiled code either means you're wading into transpiler-generated muck, or you've got to maintain yet more tooling to step through things in something that's not the browser. I was originally going to use Handlebars, which I've liked for years for its exceptional thinness & the way it encourages minimal business logic on the client, but caught Shawn Wildermuth on Jesse Liberty's Yet Another Podcast, and heard him talk about VueJS. VueJS is essentially Handlebars with, afaict, a few more recent lessons baked in. The syntax is actually very similar to Handlebars in many ways. Here's what eventually won me over:
It looks like we've got good room to grow using VueJS' conventions if we want to do a full SPA in the future. I also debated not using Bootstrap, but I don't think it's worth the time to roll your own responsiveness when Bootstrap does it so well. It's over 200 KB total, but if you have it cached, that's a one-time hit that's smaller than most images. You're fine. jQuery was also debatable, since you can handle DOM manipulation fairly well by wrapping vanilla JS with some convenience wrappers to check for DOM existence, but at 69 KB? Come on. It's well known, rock solid, and has good industry support. Use jQuery. This looked nice. Simple, API-only and REST convention compliant server. No licensing fees. No JavaScript transpilation required, which will pay for itself in spades when you're debugging. Thin client. Clean separation of concerns. I was going to go through my headaches setting everything up here, but I'll split that into a new post later. The quick version? Because of a wack nuget configuration I didn't realize was an issue (command line nugget didn't pick the "right" nugget server; I had a local one set up in VS2017 as well), I'm using SQL Server for now, though I will probably give PostgreSQL another look before I settle on a dbms. 1 If you want the cleanest stack, there's nothing more advantageous than using the same language on the server and the client. Node lets you do that. There's some overhead (learning & setup tedium) standing up a web server -- do you just use Express everywhere, or serve from Nginx? -- but nodejs is The Right Answer, imo. But I'm a C# guy "professionally", and there still seem to be more opening for C# devs than node, so I think there's an argument that a C# server-side should be easier for a customer to have maintained going forward. Labels: c#, javascript, node, noteToSelf, web posted by ruffin at 2/14/2018 11:10:00 AM |
|
|
| |
|
|
All posts can be accessed here: Just the last year o' posts: |
|||||||||||||||||||||
|
||||||||||||||||||||||
|
|
|
|