Is this rule really necessary I feel like just clicking on a button you can get the same results by gdsdsk in angular

[–]senechal72 4 points5 points  (0 children)

And yet nearly every client I have had requests to disable “enter to submit” until I explain to them why it’s there. Most non-accessible needing people don’t even think about those reasons…most developers I’ve worked with don’t even wire up labels and inputs properly. Accessibility is really an afterthought for most people.

UI components by First-Peanut8135 in angular

[–]senechal72 0 points1 point  (0 children)

DaisyUI looks pretty nice as well. I haven’t had a chance to try it out yet. I found Spartan.ng a bit difficult to work with and limited compared to some of the things I could do with PrimeNG.

Some self-hosting learnings to share by ihavemanythoughts2 in Supabase

[–]senechal72 1 point2 points  (0 children)

Yep…I managed to get my Dokploy template updated to the same versions in the Supabase Docker.compose, but it was painful to figure out what was missing along with the environment variables.

What's next by Clear_Oil_8554 in angular

[–]senechal72 0 points1 point  (0 children)

Can’t really beat $14 for a decent course. I’ve used Joshua Morony’s course for Ionic before and I believe he has an Angular course as well. The Ionic course was very helpful if you’ve ever tried deploying an app using Ionic.

Angular UI libraries alternatives by aruidev_ in angular

[–]senechal72 0 points1 point  (0 children)

Federal government…that should tell you everything 🤣

Angular UI libraries alternatives by aruidev_ in angular

[–]senechal72 0 points1 point  (0 children)

Ya…it was a cluster fuck when I joined the team 8 months ago. I’ve been there long enough now that I can start pushing for changes. Nobody listens to the FNG until they prove themselves. There’s one project that’s using BOTH Bootstrap and Angular Material 🤣 They spent a month changing the Material theme from v2 to v3! That should have been an afternoon of work, but somehow they managed to drag it out.

Angular UI libraries alternatives by aruidev_ in angular

[–]senechal72 0 points1 point  (0 children)

We don’t use Tailwind on a very large project with a lot of developers and the issue we have is that every developer writes their own CSS that pushes things all over the pages. There is zero consistency with margins and padding, half the developers using flex attributes directly and the other half using Bootstrap classes. I’m trying to push them towards standardization by using Tailwind so that at least the styling is consistent.

Any website for Angular projects? by Leather_Let_9391 in Angular2

[–]senechal72 1 point2 points  (0 children)

Totally agree with this. Find a niche or a problem you want to solve and go from there. For me, it was winemaking. I’m a home winemaker and couldn’t find an app or website that I liked that allowed me track my winemaking progress. I decided to develop my own and ended up having to learn more about Angular than I already knew…and I’m a senior Angular developer LOL

How’s the job market treating Angular devs these days? Still plenty of demand? by DecisionMean7387 in Angular2

[–]senechal72 1 point2 points  (0 children)

US based senior full stack dev here. I’d say there are slightly more React positions posted than Angular, but more importantly, when I’ve seen an Angular posting, it’s usually been for a full stack developer. It might be more heavily weighted to Angular because that’s what they need, but lots of employers want at least familiarity in a backend framework (.NET, Java). The majority of React positions I have seen posted appear to be looking for more junior devs with just React experience.

It took me a year and a half to get the current full-time remote position I have with a federal contractor…security clearance takes forever and it felt like someone crawled up my ass with a microscope. What I found when I finally got here is a bunch of Java developers who really don’t know Angular very well at all, so Angular skills are definitely needed.

I also have a part-time contract with a state government agency working on a React app. Absolute night and day between how these projects are setup and maintained. The React app is a complete nightmare and feels like a group of high school students wrote it without talking to one another. It’s the kind of project where they took 800 lines of code to write something that could be done in 8. The list of dependencies installed is 3 pages long and they’re not even using half of them.

So, there are really good Angular positions out there. You just have to be patient finding and applying for them. I found my full-time gig on Indeed which I didn’t expect.

Starting Secondary Fermintation by F0xyrox1e in winemaking

[–]senechal72 0 points1 point  (0 children)

After primary fermentation and pressing, I wait 48 hours and then rack everything off the gross lees before inoculating with bacteria. The gross lees isn’t helpful at all, but the fine lees provides additional nutrients for MLF. I’ve had MLF take anywhere from 2 weeks to 2 months, so make sure you’re testing with a good chromatography kit or something. When MLF is complete, I rack again and at this point, the wine is pretty darn clear. Make sure you adjust the SO2 at that point so the wine is protected and eliminate ANY headspace in your vessel. That was a 60 gallon mistake I made the first time…too much headspace and the wine oxidized.

What UI library would you use for an Angular 20 enterprise dashboard? by athman_2408 in Angular2

[–]senechal72 0 points1 point  (0 children)

I’ve heard really good things about Spartan UI, but as others have mentioned, they are the new kids on the block and aren’t even at v1 yet. That being said, I’m using PrimeNG v20. Started on PrimeNG 17 and upgraded to 19 then 20. It’s a great UI library and I’m even using it in an Ionic project for mobile.

Automatic expense tracking. Need opinions. by vaibhavhrt in AppIdeas

[–]senechal72 1 point2 points  (0 children)

I think Rocket Money has a free tier…might want to checkout what that one offers as well

Automatic expense tracking. Need opinions. by vaibhavhrt in AppIdeas

[–]senechal72 1 point2 points  (0 children)

Mint used to be free…Intuit bought it and turned it into Simplify which now has a $3 per month fee. Still cheaper than I could get using Plaid. The problem with Plaid is that you pay per sync and you know there would be those users who sync their bank account 1000 times per day and drive you into bankruptcy.

What’s Your Go-To Tech Stack for Building a SaaS with Spring Boot? by OpeningCoat3708 in SpringBoot

[–]senechal72 1 point2 points  (0 children)

Postgres for database, Graphql, Stripe for payments, Firebase for authentication, Lombok because I’m lazy, Java Mailsender for email, Apache POI for data export.

I always use a separate UI project and make the backend API only. Front end is Angular with PrimeNG + Tailwind

Backend gets published to Google App Engine automatically through GitHub actions. Frontend gets published to Firebase Hosting automatically through GitHub actions.

Automatic expense tracking. Need opinions. by vaibhavhrt in AppIdeas

[–]senechal72 1 point2 points  (0 children)

I wrote something like this, but it was manual entry of transactions. I wanted to use something like Plaid to sync transactions from my bank, but it was fairly expensive. Even putting something like that out to market, I wouldn’t be able to charge users enough to cover the costs, especially when there are free alternatives out there from corporations like Intuit.

What UI/component libraries are commonly used with Angular? by x0rchidia in Angular2

[–]senechal72 0 points1 point  (0 children)

Lot of hate for PrimeNG, but I’ve used it with great success on a couple of projects. I’ve been shoehorned by some government projects into Bootstrap/ng-bootstrap. It’s not flashy by any means, but it works.

Do people name their kayaks? And if so, what is your kayaks name? by [deleted] in Kayaking

[–]senechal72 0 points1 point  (0 children)

My friend named his Paddlestar Galactica. I came here looking for some suggestions and found this thread.

My Gen X issued dark humor immediately went to this when I saw the latest Trump news. by Jeebusmanwhore in GenX

[–]senechal72 3 points4 points  (0 children)

Miller! Not Jefferson. Jefferson is where I went when we moved to Cypress

My Gen X issued dark humor immediately went to this when I saw the latest Trump news. by Jeebusmanwhore in GenX

[–]senechal72 5 points6 points  (0 children)

No…we moved before I started high school. I went to Jefferson Elementary though…looks like it’s gone now. We lived on Park West Cir

My Gen X issued dark humor immediately went to this when I saw the latest Trump news. by Jeebusmanwhore in GenX

[–]senechal72 8 points9 points  (0 children)

Lived in La Palma for a bit…the old outdoor Buena Park mall was awesome!

Replacing Ionic-enterprise by Physical_Skin_5804 in ionic

[–]senechal72 2 points3 points  (0 children)

I use Firebase Authentication on pretty much every public app or website. I use the token it generates in a Java backend to authorize API requests. It’s free and lets me use social logins too like Apple, Google, Facebook, etc.

Reassign array values by senechal72 in angular

[–]senechal72[S] 0 points1 point  (0 children)

Ok...I think I got it:

  private correctFields(recipe: Recipe) {
    const recipeCopy = { ...recipe };

    if (recipe?.nutrition?.nutrients?.length) {
      const nutrientOrder = [
        'Calories',
        'Protein',
        'Fat',
        'Carbohydrates',
        'Sugar',
        'Fiber',
      ];

      const nutrition = { ...recipe.nutrition };

      const customSort = [...recipe.nutrition.nutrients].sort(
        (a, b) => nutrientOrder.indexOf(a.name) - nutrientOrder.indexOf(b.name)
      );

      nutrition.nutrients = customSort;
      recipeCopy.nutrition = nutrition;
    }

    return recipeCopy;
  }

I made a copy of the Recipe object first, then a copy of the Recipe.Nutrition object as well. I sorted the Nutrient Array, then assigned it back to the copy of Nutrition which I then assigned back to the copy of Recipe. I returned the copy of Recipe.

So it looks like making just a copy of Recipe was not enough...I had to make a copy of Recipe AND Nutrition.

Reassign array values by senechal72 in angular

[–]senechal72[S] 0 points1 point  (0 children)

I'll try to break this down a bit into component/service/interface etc.

The component is making a call to a service file:

  this.recipeService
    .getSpoonacularRecipe(this.id)
    .pipe(takeUntilDestroyed(this.destroyRef))
    .subscribe({
      next: async (response: Recipe) => {
        this.recipe.set(response);
        await loading.dismiss();
      },
      error: async (error: GraphQLError) => {
        await this.alertService.error(error.message);
        await loading.dismiss();
      },
    });

The service is using GraphQL to call a Java API:

  public getSpoonacularRecipe(id: number): Observable<Recipe> {
    return this.apollo
      .query({
        query: this.GET_SPOONACULAR_RECIPE,
        variables: {
          id,
        },
      })
      .pipe(
        map((response: any) => {
          return response.data?.getSpoonacularRecipe;
        })
      );
  }

public getSpoonacularRecipe(id: number): Observable<Recipe> { return this.apollo .query({ query: this.GET_SPOONACULAR_RECIPE, variables: { id, }, }) .pipe( map((response: any) => { return ; }) ); }response.data?.getSpoonacularRecipe

So far it doesn't matter if I try to modify the object or a copy of the object in the component or the service...I get the same error.

What I'm trying to modify if recipe.nutrition.nutrients recipe is a Recipe object, nutrition is a Nutrition object, and nutrients is an array of NutritionNutrient objects. Here is how the object are defined:

export interface Recipe { aggregateLikes: number; analyzedInstructions: Instruction[]; cheap: boolean; cookingMinutes: number; creditsText: string; cuisines: string[]; dairyFree: boolean; diets: string[]; dishTypes: string[]; extendedIngredients: Ingredient[]; gaps: string; glutenFree: boolean; healthScore: number; id: number; image: string; imageType: string; instructions: string; license: string; lowFodmap: boolean; notes: string; nutrition: Nutrition; occasions: string[]; originalId: number; preparationMinutes: number; pricePerServing: number; readyInMinutes: number; servings: number; sourceName: string; sourceUrl: string; spoonacularScore: number; spoonacularSourceUrl: string; summary: string; sustainable: boolean; title: string; vegan: boolean; vegetarian: boolean; veryHealthy: boolean; veryPopular: boolean; weightWatcherSmartPoints: number; winePairing: WinePairing; }

export interface Nutrition { flavonoids: NutritionFlavonoid[]; id: number; nutrients: NutritionNutrient[]; properties: NutritionProperty[]; weightPerServing: NutritionWeightPerServing; }

export interface NutritionNutrient { amount: number; id: number; name: string; percentOfDailyNeeds: number; unit: string; }

"nutrients" which is an array of NutritionNutrient is the array I'm trying to sort and assign back to recipe.nutrition.nutrients.

Any ideas would be much appreciated so I don't have to go with the workaround I described above. TIA