Time Tracking Web Apps

By | April 16, 2021

I work for a tech outsourcing firm, but I’m fully-subcontracted to a Fortune 250. My company recently switched away from their home-brew time tracking tool (which wasn’t completely terrible) to Workday. The transition was rough. You had to click several times to finish the process, and it was easy to miss. They’ve since changed the workflow, and it’s better, but the site is still laggy. Apparently, Workday is taking over the world, and this makes me sad. It’s not a great system.

The Fortune 250 recently wrote their own time tracking tool, and now I have to enter my time in this second system as well. It’s everything I’ve come to expect from an internal application written by #CorporateIT. It’s slow. Like, really slow. Every time you type a number, it does something in the background, so filling in project numbers takes several seconds. Entering a number for time takes just longer than you expect, so it’s constantly tripping you up. Did it take the number? Oh, wait, it did, and now I have 88 hours in the box. Today, it broke the tab key. So, you know that thing where you would hit 8 and then tab, five times in a row, and be done? Not happening. This is something that you get for free in a browser, which people rely on, due to muscle memory, and the way every other table-based UI works, like Excel. You have to purposely disable this behavior. This strikes me as bizarre, but I guess it doesn’t really surprise me.

I wrote attendance-taking software for my church, which we used for a dozen years. It had features we still miss now that we use one of the main church management software sites. And it was fast. Like, millisecond fast.

I wrote my own home-brew time tracking software for a previous company. The first version sucked. It was slow, too. But, after getting it “in the neck” about how bad it was, at one all-hands meeting, I took the initiative, spent a week re-designing the core of it, and made it fast. Really fast. I profiled it at literally 20 times faster. The owners were happy. And then I wrote a page to do two pivot tables for the time period, one by employee (to write paychecks) and one by customer (to write invoices), and the person who did both of those things was happy too. This saved her many hours every week. That was 11 years or so ago, and the last time I asked, they were still using it.

These systems aren’t really that complicated. This is a well-known problem space, which every company needs addressed. Why are they all so terrible? I think it all comes back to the basics. The people who have to deal with it are not the people designing it, or specifying it. Once a company is so big that this disconnect can happen, I don’t know how it ever gets fixed. I fixed my app because the owner said it sucked, and I fixed it. In a Fortune 250, no one who has the authority to say that the time-tracking app sucks will ever have to use it, or even speak to someone who has to.

jwz: ENGAGEMENT!

By | April 14, 2021

Every time we post to our Facebook account, it immediately gets 2-5 one-word comments from random Indian dudes with locked accounts that are years old and have thousands of friends:

Source: jwz: ENGAGEMENT!

There’s never post about Facebook on “Hacker” “News” where the comment thread isn’t filled with people saying, “I hate it too, but what do you want me to do? Never know anything that’s going on around me? There’s literally no other option.” Even JWZ himself, who abhors Facebook, still uses the platform to promote is nightclub in San Francisco. That’s how deeply ingrained the service has become to society, and how irreplaceable it is to local businesses.

This is a pitch-perfect example of what I was talking about in my previous post. This irreplaceability is precisely what all tech investment is gunning for: total control of a channel. Eliminating all competitors in the space, and establishing a monopoly. If you want to advertise some local social event, at this point, Facebook is your de facto only choice.

Right now, Uber seems like a good idea. Door Dash seems pretty nifty. WeWork sounds great. But make no mistake, once those platforms have removed all the competition in their spaces, their services will start to experience the same sort of corruption that is being described here. Scammers will flourish, as they focus their efforts. All of these services will come to feel like shopping at Amazon, where you used to be able to trust the reviews and delivery times, and now it’s just a roll of the dice on both.

Police pull guns on and spray Black-Latino Army officer during traffic stop, lawsuit says

By | April 13, 2021

Two Virginia police officers have been sued for drawing their guns on a uniformed Army officer during a traffic stop and pepper spraying him.

Source: Police pull guns on and spray Black-Latino Army officer during traffic stop, lawsuit says

Is U.S. Army 2nd Lt. Caron Nazario a “good enough” person for Candace Owens to “support” as a victim for BLM?

I can feel my willpower slipping to stay off Twitter with this sort of hot take.

How People Get Rich Now

By | April 13, 2021

The tech companies behind the top 100 fortunes also form a well-differentiated group in the sense that they’re all companies that venture capitalists would readily invest in, and the others mostly not. And there’s a reason why: these are mostly companies that win by having better technology, rather than just a CEO who’s really driven and good at making deals.

Source: How People Get Rich Now

I’m sorry, but this is pure fiction, told to one’s self to feel better about the real facts on the ground. What we’re seeing in “tech,” over and over, is not an effort to come up with “better technology,” but the play to capitalize on some particular niche, and then monopolize it. This is key.

It’s not good enough to provide nice co-working spaces; the goal is to own every rentable building in a city. It’s not good enough to provide a ride sharing solution; the goal is to run taxis out of business, and be the only ride share in town. It’s not good enough to run a respectable social media site; you have to be the only one that people use for a particular purpose. It’s not good enough to provide a food delivery service, you have to be deliver all the food in a metro area.

VC’s are not looking for the next “better mousetrap;” they’re looking for the next monopoly. That’s where all their money is going. Don’t go to Y Combinator with an idea that you think can make “X” millions of dollars per year. Go to Y Combinator with an idea to corner the market on some product or service, and make all the money for it. Established companies (like the latest $20 billion Microsoft gobble) are scrambling to own a monopoly vertical workflow stacks of their own, but it’s all the same idea at play. The only people left standing at the end of this century will be monstrous, global companies which control an entire end-to-end chains of a particular thing, or entire walled gardens that provide so much of what you want that you never step outside of them, and the only people who will be able to pull their strings are billionaires who fund them.

Unless the governments of this world suddenly find their spines, and learn how to tell a billionaire “no,” we’re heading directly for the cyberpunk, citizens-of-global-corporations future that people have been writing about for decades.

Also, this guy has a great deconstruction on the actual wealth inequality fiction Graham was spinning here.

TECH | Stop using JPA/Hibernate · Blog de Laurent Stemmer

By | April 12, 2021

Here an example of a JPA entity (using Lombok for “simplicity”): <sarcasm quotes mine>

@Entity
@Table("offer")
@EqualsAndHashcode
@NoArgsConstructor // for Hibernate
@Setter // for Hibernate
@Getter
public class BankAccount {
    @Id
    @Column("id")
    private String id;
    @Column("opened")
    private boolean opened;
    @OneToMany(fetch = LAZY) // ...simplified
    private Set ownerIds;
}

Source: TECH | Stop using JPA/Hibernate · Blog de Laurent Stemmer

Through a very long series of unfortunate circumstances, I was backed into using Java/Spring/Hibernate/Angular in a doomed project. This page had me nodding my head in agreement, and this code reminded me of the Lombock portion, which was its own special nightmare. I just went looking for what I had written for that project, and it would appear that I’ve totally deleted it. I normally keep everything, so I can go back and refresh my mind when I recall some particular technique I’ve used in the past, so this should tell you something about the brain damage using this stack will incur.

The thing that fans of the Java ecosystem can’t admit to themselves is that this whole stack: Java, Spring, Hibernate, Lombock, Javascript, AngularJS, etc., et. al., ad naseum… is all just a terrible pile of Jenga blocks which putatively exist to give you a functional environment like… wait for it… Ruby on Rails! Lock, stock, and out of the box. All of the code above reduces to this in Rails:

class BankAccount < ApplicationRecord
    self.table_name = 'offer'
    belongs_to :owner
end

In an absolutely brilliant display of one of the biggest problems with using this Java stack, I went to remind myself what the @Table("offer") directive does. I think it might specify the actual SQL database table name storing the instances of this object, but I literally can’t find any references to this pattern in the Lombok documentation. It is only through inferring it from a StackOverflow question that I am reasonably confident that this is, in fact, what it’s doing. And if it weren’t for Spring and Hibernate and Lombok, there’d be about a hundred more lines of boilerplate code in that single class file.

The top comment thread on the HN discussion about this blog post points out just how bad of an ORM Hibernate actually is. With 15 years of experience with Rails under my belt, I can assure you that almost none of those issues apply to ActiveRecord. Of course, I’ve seen people complain about AR, but I think their arguments are always exaggerated, and probably come from a place of general discontent with having to use Rails at all. People like to complain that Ruby is “slow” because it is interpreted, but it’s precisely that on-the-fly reflection that allows ActiveRecord to be so good at being an easily-programmed and powerful ORM. It’s trading machine time for ease of development and readability, and I have yet to see a situation where that was a bad tradeoff.

While I’m on the subject of ORM’s, I find EntityFramework just as bad as Hibernate. I suppose it’s just the nature of an ORM in the context of a compiled language. After giving it a real college try, I gave up on it. I wrote a serious application in Visual Basic and C# which accessed the database through a library of functions wrapping raw SQL, and called them from the WinForms side, and it worked out very well. I’m glad I didn’t try to force EF to work.

So, sure, rag on Rails. Call it slow. And, yes, compiled Java will always be technically faster than interpreted Ruby, but all the Java web sites I have to interact with are noticeably laggy and sluggish, compared to my apps, so there’s something to be said about implementation. And, while a whole team of Java devs are still writing class files, in both Java and Javascript, for their object model, I’m done with my app, and moving on to the next one.

So, yes, by all means, please stop using JPA/Hibernate, but, I would go one step further, and advise people to just stop using Java for web apps entirely. That horse got passed 15 years ago. Even if you don’t like Rails, there are at least a few other stacks that would be far more productive than Java for web apps these days. Heck, I’d try to do Javascript on the frontend and backend before I’d try doing Java again. <shiver>

And that’s my “2 minutes of hate” for today.

Build Your Own Database Driven Website

By | April 12, 2021

I don’t remember what prompted me to remember this book, but it was, perhaps, the biggest influence which has shaped my career. I had already been a programmer since I was a kid, and I had already written a couple of well-received programs on my job by the time I bought it, but I had actively avoided learning about databases, in order to focus on other Windows and Visual Basic, and I hadn’t gotten long-enough arms to break into web programming until then. Thank goodness, too, as it was all cgi-bin Perl stuff leading up to PHP. Yuck!

Reading books on programming is never fun for me. I’ve tried to read a couple on Ruby and Rails, and I just can’t get through them. The problem is that the ratio of stuff I already know to the stuff I don’t is so high, I can’t slog through it. I get too bored while trying to get to something new to me, and put it down. This book, however, hit me right between the eyes. It was the perfect book for me at the time. It was very thin, and there was zero fluff. I rewrote my FrontPage blog site in PHP in a week with the help of this book, and I was off and running. I’ve been doing primarily web app programming ever since.

Anyway, I just am fond of the memory of this book, Kevin Yank, who wrote it, and SitePoint, which was started around these books. This version is old and out of print, of course, and he seems to have retired now. If so, good for him. Thanks, Kevin.

The College Admissions Scandal

By | April 5, 2021

I didn’t pay any attention to the recent college admissions scandal, because I just didn’t care. It affected a strata of society that I can’t even smell. It didn’t affect me. At all. I thought it was ridiculous that so many people got collectively upset about it, because it’s just the way the world works. The documentary points out that it’s always been possible to give an indecorous amount of money to a university to get a placement. $50M to Harvard will get your kid in, but do you realize how little money $50M actually is when you’re a multi-billionaire?

I think the public backlash was so significant because it brought the pay-for-play action down by an order of magnitude. Instead of being the realm of billionaires, it made it accessible to the $100-million-aires. It involved people who were D-list celebrities and popular YouTubers. Combined with the fact that people feel entitled to get incensed by anything and everything on social media these days, this scandal led to an out-sized reaction.

Parents went to jail for being conned into a payola scam, when they didn’t even make checks out to the coaches. The guy at the center of it all flipped immediately, sang like a bird, and is still free. The colleges kept all the money. What about the athletic directors who looked the other way, while their coaches accepted bribes? Making Lori Laughlin-types go to jail for a few months might make the Twitter rabble feel better, but it is not justice.

The DOJ held press releases about this case, because they want “us” to feel that they “did something,” but do you realize how few spots were actually affected, and how little shutting this down matters? Singer admits to helping 750 families over 25 years. There are 7 universities listed in the Wikipedia page on the scandal. I quickly searched for the enrollment number for each, divided by 4, and added them up into a back-of-the-napkin estimation of what must have been around 1,175,000 possible admission slots over this timeframe. We’re talking maybe 1-5 slots at one of these schools in a year, out of 1,000, 5,000, or even 10,000 freshmen. People are starting to sue about this, but if you didn’t get into one of those schools during this time, it’s pretty hard to blame Singer’s involvement unless you can specify which particular non-athlete took a slot for your prospective sport.

So nothing really changes here. These elite schools continue to be untouchable. The costs of higher education continues to rise at three times inflation. The athletic directors still run the schools. People will continue to try to find cracks in the process, and games will still be played in athletic recruiting. And, as the last line of the documentary pointed out, the “back door” is still open to the billionaires. The DOJ hasn’t actually done a single thing of significance here.

This is what aggravates me about the scandal. Not the fact that it existed, but the fact that when it blew up, nothing that matters to anyone has changed, and I knew this would be the case. In fact, if you want to get really cynical about it, I almost see this as the billionaire-class whipping the government into action to stop the 100-million-aire class from encroaching on what they perceive as their territory. This is why I didn’t give a crap about it before, and why I care even less about it now. All the wrong things are being addressed here, and there’s literally nothing I can do about it.

The Gervais Principle II: Posturetalk, Powertalk, Babytalk and Gametalk

By | March 31, 2021

Finally, Sociopaths and Losers speak rarely to each other at all. One of the functions of the Clueless, recall, is to provide a buffer in what would otherwise be a painfully raw master-slave dynamic in a pure Sociopath-Loser organization. But when they do talk, they actually speak an unadorned language you could call Straight Talk if it were worth naming. It is the ordinary (if rare) utilitarian language of the sane, with no ulterior motives flying around. The mean-what-you-say-and-say-what-you-mean stuff between two people in a fixed, asymmetric power relationship, who don’t want or need to play real or fake power games. This is the unmarked black triangle edge in the diagram.

Source: The Gervais Principle II: Posturetalk, Powertalk, Babytalk and Gametalk

I am re-reading the whole series, because it came up as a response to something I said on HN. Basically, I had reinvented this 3-layer dynamic from first principles, based on my observations of the past few years of my career. Now that someone pointed me back to it, I remember reading it originally, but this was written twelve years ago now.

Anyway, this passage really resonates with me. Every time I’ve gotten face time with a serious power broker in a company, this has been true. No games. No BS. Just straight down to business. I have something to say that will help the organization, and they’re ready to hear it and incorporate it. It never accomplishes the full intention, but I understand that they have a lot more pressures that I can see from my vantage point.

… for Sociopaths, conditions of conflict of interest and moral hazard are not exceptional. They are normal, everyday situations.  To function effectively they must constantly maintain and improve their position in the ecosystem of other Sociopaths, protecting themselves, competing, forming alliances, trading favors and building trust. … They never lower their masks. In fact they are their masks. There is nothing beneath.

Though distant from our worlds, criminal worlds have the one advantage that they do not need to maintain the fiction that the organization is not pathological, so they are revealing to study.

For me, as a non-sociopath, this is a source of continual failing: to recognize that the the people pulling the levers of power in the organization are, in fact, sociopathic, and out for their interests, without regard for anyone else’s feelings or fortunes, not mine, or even necessarily the organization’s. Forgetting this base and simple fact has bitten me in the rear end more times than I can count.

Harvey Weinstein, Again.

By | March 30, 2021

I watched Untouchable the other night. I thought it was closer to its 87% rating on Rotten Tomatoes than the 71% at Metacritic they list on the IMDB page. After reflecting on what I saw, what struck me about it was how depraved Harvey is, and I don’t mean about all the obvious rape and assault. The problem is actually much worse than it appears, and it’s already pretty bad. “They” say rape isn’t about the sex, it’s about power. At least, in this case, “they” are exactly right, and spectacularly so.

Look at his second wife. Smokeshow! And not just a trophy; a successful woman on her own. He had 2 kids with her, so they had sex at least twice. She seemed honestly taken aback when the scandal broke. This activity is something, given his schedule, I can credibly believe that he could hide from her. In my estimation, she spoke from a place of relative normalcy about the marriage, so I’m relatively sure he could have been getting at least some sex at home.

Hugh Hefner built a media empire on the “backs” of some of the most beautiful women in the world. In the process, he had scores of willing, live-in girlfriends for decades, even though he wasn’t a great-looking guy. He was rich. He was connected. He could give these women a boost in finding fame and fortune. I watched The Girls Next Door, and read about what happened afterward, because it was fascinating to see how all of this worked. The “naked” trade of a consensual sex life for access to money and other rich people. As I understand how the system worked, most of these girls found other boyfriends at the parties Hef threw, and moved on naturally, of their own accord, and everyone involved seemed to feel this system was a good trade.

Given Harvey’s empire, and the enormous wealth and influence he wielded in the movie business, it would seem to me that he could have done essentially the same thing as Hef, and on an even grander scale, given the larger and more-reputable business. It would have been nothing to him to keep a bevvy of beautiful women on hand, put up in nice places, for him to visit on his whim. It’s clear that women who want to work in movies are a little different than women who want to pose naked in magazines, but, for purposes of this discussion, you can leave them out of it entirely. With his wealth and connections, he could have kept a stable of pure, gold-digging girlfriends. But he didn’t do that. He coerced women. Aspiring actresses. Assaulted them. Raped them. For decades.

It wasn’t about the sex. It was most definitely about the power and the subjugation. To me, this doubles the horror of the scandal.

And don’t give me the BS that people didn’t know. Everyone knew.  Everyone. By the time the scandal finally broke, even I had seen and heard enough rumors to know he was a monster. The fact that his brother, the people in his company, and the entire industry looked the other way for 40 years triples the horror.

 

Congress, in a Five-Hour Hearing, Demands Tech CEOs Censor the Internet Even More Aggressively – Glenn Greenwald

By | March 29, 2021

We are taught from childhood that a defining hallmark of repressive regimes is that political officials wield power to silence ideas and people they dislike, and that, conversely, what makes the U.S. a “free” society is the guarantee that American leaders are barred from doing so. It is impossible to reconcile that claim with what happened in that House hearing room over the course of five hours on Thursday.

Source: Congress, in a Five-Hour Hearing, Demands Tech CEOs Censor the Internet Even More Aggressively – Glenn Greenwald

Glenn brilliantly sums up what’s been bothering me lately. For a long time, liberals have ducked-and-covered in the Free Speech debate, saying that online censorship was a private matter, and therefore did not run afoul of the First Amendment. But Congress has been applying more and more pressure to get Facebook (in particular) to censor their content in a way they find acceptable.

Once a platform becomes as ubiquitous as Facebook, Twitter, or Google (or Amazon), it should be regulated as a “common carrier,” and not censor at all. They have become de facto services of the public, like water or electricity, and should be treated as though they were. We don’t allow the water or electric companies to dictate who can be served, or what those resources are used for.

Libel and threats can still be prosecuted as the illegal acts they are. We lose nothing in preserving freedom of speech on these platforms. All the incitement and insurrection in the Capitol that was facilitated by social media is being prosecuted, and hard. That’s precisely how the system should work: Say whatever you like, but be prepared to suffer the legal ramifications if you cross over into illegal speech.

We are letting these companies redefine what it means to live in America. Congress is encouraging them to redefine it. At this point, I guess there are two kinds of people. Those that think that the First Amendment is, perhaps, the purest written form of freedom ever written down, and feel we should do ever more to preserve it, and those that think this was a Bad Idea, and feel it’s time to repeal the notion of it.

Orwell’s depiction of Oceania has already become reality in China. Even further, they have already implemented a social scoring system like the one depicted in the Black Mirror episode, Nosedive. What’s so utterly disappointing is to see all of this taking shape in the United States, the very last place it should, by the ideals of our founding. There’s a reason why the US has fallen to 27th place on the list of free countries.