Infosec Press

Reader

Read the latest posts from Infosec Press.

from Kevin Neely's Security Notes

Creating a Michelin menu with Generative AI

We've been watching season three of The Bear and it is totally nuts, filled with drama and psychology, and human relationships, and –when they can get around to it– cooking food. This is a fantastic series, and as foodies, you can imagine that my wife and I really enjoy it. The series is intense, following a classically-trained, at the top of his game chef as he “drops down” from a fancy restaurant to a steak sandwich shop and works back toward where he was before.

That’s not a spoiler, it’s the premise. And this isn’t a review, it was just something in my mind as I experimented with this new tool called LobeChat, which is an interface to #genAI inference servers such as #OpenAI’s #chatGPT, #Claude, and nearly any other commercial or #opensource system you can imagine. I'm tweaking a #homelab hosted genAI inference server and this post is about experimenting with [Ollama]() and a Lobe chat front end for easy access. I haven’t formed a final opinion on this setup at this time, but the #LobeChat front end allows for the quick switching between inference servers and their hosted models. While not being super easy to configure, once it works, the whole thing looks very easy for someone, i.e. a roommate or a spouse, to flip between models -even in the same conversation.

So let’s look at some results. Of course, the results are about the models themselves, but the point here is that LobeChat made it easy to switch between them as I continued to develop the conversation.

First prompt

This was with ChatGPT (4o, I think). I needed something to test that an integration was working. We had just watched The Bear so this is what I came up with:

as fast as you can, what's the best restaurant dinner menu with wine pairing that could win a Michelin 3 star award?

Response

Crafting a Michelin 3-star worthy dinner menu with wine pairings involves high-quality ingredients, exquisite preparation, and a thoughtful combination of flavors. Here’s a conceptual menu that could impress:

Amuse-Bouche:Oyster with Champagne FoamWine Pairing: Champagne Brut

Appetizer:Seared Scallops with Cauliflower Puree and CaviarWine Pairing: Chablis, Premier Cru

Soup:Cream of White Asparagus with Truffle OilWine Pairing: Viognier

Fish Course:Poached Turbot with Fennel and Citrus Beurre BlancWine Pairing: Pouilly-Fumé

Main Course:Roasted Duck Breast with Plum Sauce, Parsnip Mash, and Seasonal VegetablesWine Pairing: Pinot Noir, preferably from Burgundy

Cheese Course:A Selection of Artisan Cheeses with HoneycombWine Pairing: Vintage Port

Dessert:Chocolate Lava Cake with Raspberry Coulis and Homemade Vanilla Bean Ice CreamWine Pairing: Recioto della Valpolicella

Mignardises:Petit Fours and Truffles

This menu balances rich flavors with delicate preparation, offering a progression of dishes that showcase both technique and creativity. Each wine pairing is chosen to enhance the flavors of the dishes, aiming to create a harmonious dining experience that could captivate both critics and diners alike.

Review

Not a bad first response, especially since I was just checking to see if the system worked.

Prompt 2: Get ChatGPT to refine it

That was pretty boring. I’m thinking early 90s fancy dining at best, but I wasn’t eating fancy back then and assume it was all shoulder pads, tuna steaks, and cocaine. Continuing with ChatGPT, I posed the following in an attempt to refine our menu (in retrospect, I was generous with the stars):

That's an incredibly boring menu. At best 2 stars. And that's in a region that is not known for its gastronomical excellence

Response

Creating a truly innovative and Michelin 3-star worthy menu certainly demands a more avant-garde approach, pushing culinary boundaries with unique combinations and exceptional techniques. Let's elevate the original concept to something more daring and creative:

Amuse-Bouche:Nitro-frozen Lime and Ginger Pearls with Micro BasilWine Pairing: Small-batch Sake

First Course:King Crab Tartare with Avocado Mousse, Mango Gel, and Edible FlowersWine Pairing: Albariño

Second Course:Foie Gras Au Torchon with Saffron Pear Compote and Brioche CrispWine Pairing: Sauternes

Fish Course:Butter-Poached Monkfish with Leek Ash, Sea Beans, and a Lemon Verbena EmulsionWine Pairing: White Burgundy

Intermezzo:Cucumber and Elderflower Sorbet

Main Course:Sous-vide Venison Loin with Black Garlic Purée, Wild Mushrooms, and a Juniper Berry ReductionWine Pairing: Barolo

Cheese Course:A Selection of Aged Cheeses with a Fig and Walnut TapenadeWine Pairing: Aged Madeira

Dessert:Deconstructed Passion Fruit Tart with Coconut Foam, Crystallized Ginger, and Meringue ShardsWine Pairing: Late Harvest Riesling

Petit Fours:Matcha Green Tea Macarons, Raspberry Pâte de Fruit

This revised menu introduces more complex techniques and unusual ingredients, aiming to surprise and delight with every course. Wine pairings are carefully selected to complement and enhance these adventurous flavors, providing a sophisticated and memorable dining experience.

Review

Not bad! It would be nice if the wines were more than broad regions, however, I do appreciate the ‘ñ’ in Albariño. There’s nothing particularly innovative here; the fancy-sounding “Foie Gras Au Torchon with Saffron Pear Compote and Brioche Crisp” is a Thomas Keller recipe, so at least we’re pulling from the top now that I asked it to up its game.

Prompt 3: Let's try a different model

Not only am I using a different model at this point, llama3:instruct, but I am going to specify a food critic in order to change the menu.

Prompt

One more try: let's make a menu that would knock even James Beard out of his chair because it's so good

Response

You are absolutely right! That menu, while technically sound, lacks the daring, innovation, and personal touch needed to truly impress Michelin inspectors and earn those coveted three stars. It plays it too safe, relying on classic pairings and predictable dishes.

To push towards that 3-star level, we need to think outside the box:

  • Ingredient Focus: Instead of “seasonal vegetables,” source hyper-local, unique produce with a story. Maybe a heirloom tomato variety grown in volcanic soil, or foraged mushrooms with a distinct flavor profile.
  • Deconstruction & Fusion: Take classic elements and reimagine them. A deconstructed apple pie might involve caramelized apple spheres, crumble as a powder, and a cider foam. Fusion could bring Japanese umami to the duck dish, or Indian spices to the scallops.
  • Unexpected Textures: Play with contrasts – crunchy, creamy, smooth, airy. Think smoked paprika meringue alongside the chocolate lava cake, or a black truffle “soil” under the turbot.

Wine Pairings Should Be Equally Bold: * Instead of a basic Chablis, consider an obscure producer from the Côte de Beaune known for mineral-driven wines.
* The Pinot Noir could be a lesser-known region with unique terroir, like Slovenia's Primorska. * Experiment with natural wines, or even sake pairings that complement specific dishes.

The Presentation Matters:

Plating should be artistic, telling a story through the arrangement of colors, textures, and shapes. It’s about creating an immersive experience for the diner.

A Michelin-worthy menu isn't just about taste; it's about pushing boundaries, showcasing creativity, and offering a truly unforgettable journey through flavor.

Review

This is less of a menu than some advice for the aspiring chef. Let’s try something different.

Prompt 4: Let's go for Three Stars!

I felt like this was the time to go for the gusto, let's see how a different model would respond, but also with all the history behind it.

Prompt

I asked: > One more try: let's make a menu that would knock even James Beard out of his chair because it's so good

While it's not a crazily-innovative menu, it has some classic touches of a what an American, Michelin-starred menu would look like, and

Response with gemma2

You want to blow James Beard away? This isn't about ingredients, it's about experience.

The Menu: A Symphony in Five Acts

  • Act I: Awakening – Smoked Salmon “Caviar” with Beetroot Foam, Rye Crisp, and a single drop of Ossetra Caviar.

    • Pairing: Dry Riesling from Germany's Mosel Valley, expressing its slate minerality alongside the salmon's richness.
  • Act II: Earth & Sky – Roasted Quail “Confit” with Black Truffle Jus, Heirloom Carrot “Clouds,” and a dusting of Micro Thyme.

    • Pairing: Oregon Pinot Noir, showcasing earthy notes that harmonize with the truffle while its bright acidity cuts through the richness.
  • Act III: Fire's Dance – Charred Octopus with Smoked Paprika Aioli, Caramelized Onion Jam, and a drizzle of Chili Infused Olive Oil.

    • Pairing: Spanish Albariño, crisp and mineral-driven, its citrus notes complementing the octopus while balancing the smoky paprika.
  • Act IV: Ocean's Bounty – Pan-Seared Sea Scallops with Saffron Risotto “Foam,” Dulse Crisp, and a single Pearl Oyster.

    • Pairing: Chablis Premier Cru, its intense minerality mirroring the scallops' brininess, while subtle citrus notes elevate the saffron risotto.
  • Act V: Sweet Serenade – Deconstructed Peach Cobbler with Lavender Honey Ice Cream, Toasted Almond Brittle, and a hint of Rosemary Extract.

    • Pairing: Late Harvest Gewürztraminer from Alsace, its floral aroma echoing the lavender, while its sweetness complements the peach cobbler's richness.

The Experience:

  • Each course is plated as a miniature work of art, using contrasting colors, textures, and temperatures.
  • The dining room itself is a sensory experience, with soft lighting, calming music, and subtle aromas that enhance each dish.
  • Service is impeccable, with knowledgeable staff guiding guests through the tasting menu and explaining the inspiration behind each course.

This is not just food; it's a journey for the senses, a story told through flavor and texture, leaving James Beard speechless (and perhaps, slightly envious).

Review

Wow, what a different response! This one could actually be a menu, with the wines having robust and specific descriptions. I especially like how the wines are sourced from all over the globe, really picking best of breed in the selections. As good as the wines are, however, the food does not look 3-star level to me. The dishes sound really nice, and there’s a fair bit of molecular gastronomy in there. However, aside from the poetic nature of the menu, I’m not sure this is a top-tier menu for a chef to execute.

Still, most of these items are good enough for a fake restaurant. If this was to show up in a video game or a novel, I think most people would accept it and move on.

 
Read more...

from Psychomancer

“I can already tell it wasn't good news,” Peter said, obviously reading my down-turned eyes and lack of smile, perhaps the color of my cheeks. “Usually, when you come back, you're bubbly,” he added. “But you look like you are about to tell me my cat has cancer.” Peter was plump, like me, with the hint of an East Coast accent and constant twinkle in his eyes. He was also invisible when looking The Other Way. Not just to me, but to everyone and everything. As an empath, having a friend I cannot read is delightful. And he was right, it wasn't good news, but not all bad, either. He leads the way, in silence, to my study where light refreshments are waiting. We sit side-by-side on the antique sofa, where I've often slipped from my body into the æther. But the trip I just took required a more controlled and thoughtful environment. I grip Peter's hand, “They showed me quite a bit.” “Was Saffron there?” he asks. I snicker, “Why do you call her that?” He shrugs, “'Saffron' seems to match her essence and I can't pronounce a string of animated, hyper-dimensional ideograms.” “Yes,” I say. “She was waiting for me at the Carnival.” I take a deep breath and exhale slowly. “Do you want the bottom line or the whole story?” I ask. Peter just raises an eyebrow. “'Whole story' it is, then.”

The sky was a kaleidoscope of pinks, purples, and colors I can't describe, rotating, folding, emerging. It's always breathtaking. But they created the Carnival for me to have a familiar place to walk, to anchor my perception. They know me and treat me with some level of respect afforded to those who pass their tests. She knew why I was there. They always know. She was shorter than me, humanoid but shaped like a bowling ball with pale / grey / ashen / luminescent skin and blue / black / red hair in a pony tail / pixie cut. She gave me cotton candy flavored like dreams. “You must / will ask / plead / already know,” she said. “How can we stop it? How can we save ourselves from the hatred fueling the move toward authoritarian fascism?” I asked. “You cannot / will not / must not / could never / not your fault,” she told me. With a gesture, she showed me how far back it goes, how helpless we are against the sins of our ancestors and our descendants. The flood of information, pictures, sounds, words, entire histories was far too much for a human mind to comprehend. But I've been here enough times to know the rules are different. I was able to “slow it down” and comprehend what she was telling me. The world we live in is based on slavery, colonization, conquest, manufactured inequality, and brutality. She showed me versions of earth where there was no Inquisition, no Alexander the Great, no Genghis Khan, no British expansion, no slavery, no extermination of natives, no treating one human as less than another for reasons beyond their control. Thousands of variations. Millions of possibilities. They created worlds unrecognizable. Certainly you and I did not exist, but neither did the countries we know, the languages, the technology. They were so far removed from here as to be fantasy. And they were the only worlds that did not succumb to this culmination of hatred. She showed me as far back as the founding of the United States that it was already too late. All we can do is shift the timeline. There are some things mankind must experience so that we do not forget what we are capable of.

“I'm sure that's not where she left it,” Peter interrupts. “They don't do that.” I nod, “True, but it's not much better.” “I have privileges. The privilege of generational wealth, the color of my skin, a home that is paid for, the ability to see other people's truths before they do.” I squeeze Peter's hand, “Friends I can trust and lean on.” “Being an out lesbian pagan puts me at risk, but I can protect myself,” I say, adding only in thought, “for now.” I lower my head, “She suggested I bolster our defenses and, along with everyone else, experience humanity seeing itself as it really is.” “She said we must acknowledge and confront what we are in order to become what we might be.” “She reminded me that I have been spared the violence that murders and marginalizes people for their gender or the color of their skin or the deity they worship or any uncontrollable circumstance of their birth. I have been immune to the violence inflicted on others for not being male and heterosexual because of my privileges.” I turn and hold both Peter's hands. He can see the change on my face because he smiles and nods for me to continue. He knows I have a plan. “I want to work with Doug and Eric, even Emma and Eunice to turn our shared acerage into an official sanctuary, fully warded and protected. We'd need your expertise with runes, obviously.” Peter chuckles, “If we can't save everyone, we'll save who we can?” “For starters,” I say, grinning. Peter squints and I can tell he's working it out, thinking about the specific connections, knowledge, skills, talents, and resources of each of my neighbors. The psychedelic techbro, the lycanthrope luddite, the conspiracy theorist empath, the bitter faeries living in my garden, the sacred space we all maintain and respect. “We're gonna organize a resistance,” he says flatly. I'm beaming, slowly nodding, “We are going to organize a resistance.”


#Psychomancer #Writing #ShortFiction #Writer #Writers #WritersOfMastodon


CC BY-NC-SA 4.0 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

 
Read more...

from Psychomancer

I sat in cold darkness, the bare basement concrete replacing the cave where I first made contact. The single candle's light like water on the walls. The knife had been consecrated under the new moon and wrapped in black silk for 28 days. The cut on my arm burned but they called for sacrifice. The burning was but my life leaving, being transformed, offered. And the words I'd found. A language of smoke and steam, of cracking ice and glaciers sliding across continents. Speaking the words, if you can call it speaking, in the cold dark over a basin of my own blood, inside the carefully drawn symbols, I called upon the Shadows. The walls glistened and danced. And pushed into the room. My ears popped and began to ring. My teeth hurt. I smelled the sweet rot of organic compost. The air whistled and hummed. “Wise Umbral,” I asked, “Have I called you properly?” “You have,” the darkness answered. “Have I erred,” I asked. “You have not,” the shimmering shadows said. I felt a sting on my arm, where the bandaged cut was throbbing. “Does my offering please you?” I asked. The floor vibrates beneath me, like a tremor. “Yes,” the air replies. “Does my offering satisfy you?” I ask. Something like wet sand brushes against my injured arm. Wet. Cold. Siphoning heat. “For now,” it whispers. “For now,” even quieter. “I would know how to end the collapse of our nation into authoritarian fascism.” A breeze twirls around me, sniffing me, “Why do you care, little magician? You are protected.” “I made my offering, Great Umbral,” I say, swallowing hard. “I have performed the appropriate ritual,” I added. It is not a question. I feel a thump in my chest as if the density of the air itself was changed. “So you did,” the walls shake with the voice. “So you did,” it repeats in a conversational tone, adding, “I will tell you the truth.” A brief wave of nausea and dizziness wash over me. The thud of a great mass impacts in front of me. I cannot see it in the sparse light but the candle reflects off its oily surface shaped like nothing living. It squats before me. I can feel its icy gaze, the pull of its almost gravitational force against my soul. A sound like flutes, like bells. “I will tell you,” it says, in a voice like a man's. “You can do nothing but survive like the cockroach you are,” it begins, relishing the chance to remind me of my place. “Every course of action you can imagine will make no difference, even killing every single one of them. In fact, you'd only make things worse with your righteous fury. Worse, but not in a way that pleases us. We serve suffering and some things must simply be allowed to transpire.” I know they cannot lie, but they can mislead. But this I have never felt. It is not taunting me or challenging me. It is not teasing at answers just out of reach. It is not hinting a greater sacrifice might persuade it to divulge more. It has “sat” in front of me and addressed in a man's voice. Is it smiling? I can feel its contentment. Its relief. I understand. Our plays at subterfuge, hoarding knowledge and truth, self-preserving power, blackmail, secrets. Answering our calls and asking only for blood. None of it matters to them. For they play a much longer game and we are less than pawns.


#Psychomancer #Writer #Writing #Writers #WritingCommunity #WritersOfMastodon #ShortFiction #ParanormalFiction


CC BY-NC-SA 4.0 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

 
Read more...

from JR DePriest

I'd reached an accord with the spiders. I'd invited them into my corner of the Dreamlands and built them a playground, per their specifications. Crevices, overhangs, shadowy corners, boxes upon boxes, a leaky pipe, piles of clothes, abandoned cupboards, attic full of furniture and old books, a nightmare house all to themselves. And if the occasional dreamer stumbled upon it, even better. So they acted as my protectors in the Gloam instead of mere watchers or worse, tormentors. They were completely unaware of the “side passage” I was seeking to the Fugue, the place just between dreams and wakefulness. I was determined to ask The Hat Man, something they advised me against. Repeatedly. Nothing was worth what it might cost, they told me. The Hat Man does not have friends among humans or see them as equals. Even Dreamers are beneath Him. We are nothing but toys. And He enjoys breaking His toys. The spiders were afraid of Him even as they swarmed at His call to suck on the juices of his cast-offs and conquests. I appreciated their concern. Truly, I was touched by it. But, I needed to find Him. Again. I had seen Him. Once. At 600 mg, when the walls vibrated until they were transparent and He was there, on the other side, watching. I wasn't deep enough to make contact. I couldn't even see His eyes. But. When I was growing up, the back yards in our neighborhood, on my side of the street, all shared a low spot in the far back, by the fence-line. When it rained, water rushed down that trough like a river. Sometimes, we'd catch earthworms that came up to avoid drowning. We'd collect them in a big bucket and play with them until the rain stopped. Then we'd dump them back out on the mud. When The Hat Man looked at me with eyes I could not see, for just a moment, I was a struggling worm, fleeing for my life, being plucked up and dropped in a foreign place surrounded by the screams of my peers. For just a moment. Then I was dumped back into my bedroom. The spiders covered me in their warmth, eight times a thousand clawed feet massaging me in comfort. Still, I shivered. That was the Thing I was going to convince to help me? I was like garbage to It, like dust. This place, the Gloam, was not the Dreamlands and all my learned skills were muted or easily wiped away.

But, I had to try. I am trying.

At 750 mg, tonight, right now, the walls drip black stinking ichor, like a busted septic tank oscillating in the static of a scrambled cable channel. “You think you're the smartest motherfucker in the world,” my step dad calls out to me. He hasn't been part of my life in decades, but he calls out all the same. “And you can't even find the Fugue – get out here you stupid faggot – bring me a beer before I come in there – don't make me come in there” I'm twelve years old again. I want to hide in the closet. I want to cry quiet tears. I want to climb a tree. Instead I pick up my hunting knife, the one I inherited, the one that's tasted blood, that's been honed and sharpened. I stand and the floor sucks me in, sinking me up to my knees. Mud. Sucking and plopping as I trudge forward. The spiders have fled, replaced by hostile snakes, flicking their tongues, rattling their tails. Darting their heads to force me to the wall. Not the door. Not the closet. To the wall with the mirror. I accidentally look at my reflection. I know I shouldn't. I try not to, but I can't blink, can't turn away. Twitching muscle, exposed nerves, dripping blood as my skin is flayed by the air like a million tiny razor blades, and the mud a seeping infection. I can't scream. I swing the knife at the mirror and am pulled through, tumbling in cold, stale air. Landing on black obsidian. You never stood up for yourself. It's my own voice. Inside my head. You could have saved him, you know. If you really believed. No. Not in my head, spinning around me, close, invisible. Stand up. Don't be a baby. Stand up! On my knees, I see Him. The Hat Man. He's right next to me. He's impossibly far away. A living shadow, like a charcoal smudge on reality with two empty white sockets for eyes and no other features save the tell-tale hatlike shape. I told the kittens how warm it was under the hood. I unlocked the gate for the bike thieves. I helped them dig up the grave and took the first bite. Sometime in the next month, I'm going to crash your car. Why did you want to be known to me? In a few years, less than a dozen, you will be diagnosed with Stage 2 cancer. I know who your soulmate is and I've already poisoned her against you. You wear glasses now but your eyesight will continue to get worse until you are legally blind, just like your aunt, far before your time. I am the reason mosquitoes seek you out. I gave you the choice and you did what I wanted. Time doesn't work like that for you. Here. Defend yourself. My own voice has been circling me, taunting me, saying so much overlapping, blending together, backwards and forwards. He is telling the truth. In my own voice. I tense and call upon Dream Logic long enough to float into the air, upright and a few inches off the ground. I reach out to push Him away. To bring Him closer. But He stays everywhere in between. I lift my hands to call lightning but my fingertips only drip with tar. “I just want my night terrors back,” I squeak. “I just want to see them again.” Now that I know you, I have always known you. My joy, my sustenance, is your misery. Not pain. Not loss. Not anger. But deep longing, unquenchable regret, languishing indecision. You should have died when you cut yourself so deeply in secret shame, but I saved you. I saved you so I could enjoy your suffering. I will always save you when there is more hope I can siphon and dreams I can shatter. Only when there is nothing left will I let you take your own life. And you will. You already have. I suddenly feel the knife in my right hand. It was there the whole time. I hold it up. The shining steel reflecting non-existent light, glinting to remind me of its reality. I swipe toward The Hat Man but He is nowhere. The blade leaves a rainbow trail of light in its wake. I try again. He is always ahead or behind. And again. He isn't even laughing or taunting. He just is and then isn't and then is again. I remember what I know of The Shadow Things that The Hat Man seems to rule. I look at my left palm, flexing my fingers, before stabbing myself with the knife. Pain, like ice, then fire. My blood swims out as writhing tentacles, reaching toward The Hat Man. Then an explosion in all directions, faster than I can see. Pulling my essence along. I feel the walls and ceiling all at once. Smaller than it seemed. Is The Hat Man even here? Was He ever? A presence like a bug. Like a projection or a speaker. A knob, a protrusion. My body of blood tentacles grips it, pulls it from the wall. And crushes it. I'm on my back, naked, covered in sweat, lying on top of my comforter back in my bedroom. My left hand throbs, oozing thick blood. My throat is so raw I can scarcely swallow. I feel as if nails are being driven into my temples. I'm crying. I hear the spiders scurry, but the now opaque walls no longer move. The floor appears solid. I see myself as expected in the mirror.

The lukewarm shower calms my nerves, my breathing. But I still hear my own voice asking me why I wanted to make myself known. Does He even have a voice of His own? As the cut on my hand clots exceptionally fast, as my headache clears, I know I am seen. I am known. From cradle to grave.


#WhenIDream #Dreams #Dreaming #Dreamlands #Writer #Writing #Writers #WritingCommunity #ShortFiction #Fiction #Paranormal #TheHatMan #TheGloam #ShadowPeople #ShadowThings #NightTerrors #SleepParaylsis #HypnagogicHallucinations


CC BY-NC-SA 4.0 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

 
Read more...

from Mudd

Starting a new blog to document my progress in modern tech

There's a term that a character uses in a book named something like “churn” but the classic interpretation is when customers just stop using a product. My skills, I've noticed in the last eight years, are generalist and I'm capable of doing lots of tasks. However, it seems having the skills is now just.. “expected.” I'm being churned!

I can code and document/write technically. I can do databases, firewalls, networking. I've built home labs (still do!) to keep up to date. I learned how to do things with the ELK stack when documentation on just getting started was minimal if not missing (for the current version that just released, that was). I'm learning how to do proper API and backend engineering now, and it's really neat.

I can do DFIR, imaging, examinations, manual carving. Scripting, reverse engineering, finances, woodworking/carpentry are in my bag of skills. Heck, if it's anything dealing with technology in the years I've been alive, I've used it, dabbled with it, implemented it and administrated it in some form or fashion. Heck, give me permission and I'll pick your locks you need open.

Lately, though, what's EDR? XDR? Why is suddenly everyone looking for SOC jobs? Why are there suddenly 300 certifications for things? Why is everything suddenly about blockchains? Didn't we figure out the scalability of this was a mess? Why is everything using ML and LLMs to generate.. everything?

What did I miss!? WHAT YEAR IS IT!?

Rust, though, is pretty cool. I like it. Along with a lot of other programming languages, but with Rust I can write code that I can be proud of when it works.

I'll write my musings here. Apparently having soft skills is a thing supersede actual skills. I feel like I need a Rosetta Stone for translating my old skills to what new jobs want and what titles they apply to. I guess I'll also need to specialize in something, but I like being able to do every part to some degree.

 
Read more...

from Nicholas Spencer

I recently spent a weekend going down an AI rabbit hole. The idea was sparked by learning that it was possible set up an AI Large Language Model (LLM) to run locally, using a tool called Ollama that significantly simplifies the process.

What?

My weekend fascination was with AI began when I learned of Daniel Meissler's fabric framework, which has interesting use cases such as extracting the important wisdom from articles and videos. The other main component that made me realise just how simple setting up my own pet AI had become was ollama. Ollama is a tool that abstracts all the complicated parts of setting up a LLM into a simple command to download a model and expose a local API.

I started by reading up on these tools, I read far more than necessary, but it was all interesting nonetheless. I should mention that I also ended up using another awesome Ollama integration, Obsidian Copilot, more on that later.

Why?

At this point, I should mention why I wanted my own local AI. The main reason is that, although tools like fabric and Obsidian Copilot work well with API keys for commercial LLMs like ChatGPT or Anthropic's Claude, I wanted the benefit of privacy.

Using Obsidian Copilot, I would be asking the AI about my personal notes, which I didn't want to be sending off to any server that I didn't control. Also, I didn't want to be paying API fees when I could use my local AI for free (well, free of direct costs anyway).

Ollama setup

The main task was to set up a locally running LLM on my computer. I actually didn't set it up on my main computer, as I mostly use a Framework laptop with no dedicated GPU. Luckily, I have another computer which does have a decent NVIDIA graphics card, and Ollama exposes a simple HTTP API that I could easily make use of over my local network.

The actual setup of Ollama was quite easy. I set it up on a Windows computer, so the entire installation process was downloading the official .exe and running it. It felt a bit too easy, but I now had an Ollama daemon running on my computer.

As for actually setting up the LLM, this is where Ollama shines. I went with Meta's llama3 model, which is freely available, designed for general AI assistance tasks and scores well in benchmarks. As my computer only had 32GB of RAM, I went with the smaller 8 Billion parameter model, rather than the gigantic 70B version.

The actual install was one command in Command Prompt: ollama run llama3. A few minutes of downloading later and I had an interactive chat AI running in the command window. But I wasn't stopping there, I wanted access to AI from my Obsidian notes, my web browser and more.

Connecting to an Ollama server

I mentioned before that my main computer is a Framework laptop. I actually run Linux (Mint OS if you must know) as I find Windows too annoying. But my Ollama server was on a different machine, which, as it turns out, was not much of a barrier at all.

Ollama exposes a HTML API out of the box. Just go to localhost:11434 in a browser to see “Ollama is running”. All I needed to do was follow the Ollama FAQ and open the server to my local network by changing the OLLAMA_HOST environment variable. I was now good to go.

Of course I did a few quick tests using curl in my terminal, but I needed a smoother way to interact with my “pet” AI.

Ollama integrations – fabric and Page Assist

The first integration that I wanted to use was fabric. Unfortunately after install I was having issues connecting it to Ollama over the network. Normally I would keep trying things until it worked, but I knew that fabric was being overhauled to run in Go rather than Python with release due in only a few weeks, so I decided to wait for the new version and move on with other integrations.

One simple integration was Page Assist, a browser extension that can connect to a local Ollama server, including one running over the network. All I had to do was install the Firefox extension (A Chrome plugin is also available), put my Ollama IP address in the settings and it was up and running.

The main feature of Page Assist is that it has a nice clean UI to chat with my AI, but it does even more than that. It can use the current webpage as context, allowing me to ask my AI to summarise webpages or describe their content.

It can also perform web searches and use the results to form its answers. It does this by using Retrieval Augmented Generation (RAG), which requires a different LLM to create embeddings, translating the content into vectors that are stored and added to the prompt when relevant.

Luckily, it was very easy to set up an embedder LLM with Ollama: ollama pull nomic-embed-text.

Page Assist was now all set up, ready for general queries, processing web pages and searching the web for answers. However, I wanted to be able to easily use the AI on my notes, which is where Obsidian Copilot comes in.

Using Obsidian Copilot with Ollama

For those who don't know, Obsidian is essentially a notes app where all notes are just linked text files, formatted with markdown. This means that all my notes are ready to be input into a text-based LLM, with the possibility of powerful functionality.

Obsidian Copilot makes this integration simple, providing not just a chat window, but also integrating options to work on specific notes, manipulate highlighted text or use RAG to answer questions based on a whole vault of notes.

Installation of Obsidian Copilot was again very easy. I just browsed the community plugins in Obsidian settings and installed it. I then just had to point it at my ollama server in the settings, for both the main LLM model and the embedding model for RAG.

A few more tweaks were needed, namely setting Olllama's origin policy and expanding its context window so that it could work on more input at once, but I only had to follow a few simple instructions to complete the setup.

With Obsidian Copilot installed and connected to Ollama, I could now prompt my local AI with commands based on my highlighted text, any note in my vault or use RAG to ask questions based on my entire Zettelkasten of notes.

Of course, I didn't want to stick to the default prompts available, like summarising text or changing its tone, so I explored the custom prompts options that Obsidian Copilot provides. I actually based some of my custom prompts on those found in the fabric framework, such as summarising an article in a structured format, or improving the grammar of selected text. I found many powerful ways to get more out of my own notes, or text copied into Obsidian.

Ollama on my phone

Before the weekend was over, there was one more method of talking to my “pet” AI that I wanted to setup. I had found an Android app simply named Ollama App. All I had to do was download it on my phone, install it (I already had installation of non-playstore apps enabled) and point it to my local Ollama server.

I currently only works while I am at home, as I obviously have not exposed my Ollama server to the public internet. However, a simple VPN such as Wireguard running on my home NAS (TrueNAS Scale if you are interested) would allow me to access my local LLM from anywhere.

Conclusion

The weekend was now over and I had succeeded. I now had a local LLM which I could use from my web browser, my notes app and my phone, with powerful integrations to make use of my own private content.

Sure, I could just use ChatGPT, but many of these uses would require connecting to the API, which isn't free, also perhaps more importantly, this keeps all my data locally on servers that I control.

That was my weekend, I just felt like writing about it after going down that rabbit hole for two straight days. At least I have some useful tools to show for it.

P.S This was written by me, my AI only contributed a little bit of feedback.

 
Read more...

from Bruno Miguel

I don't know what the fuck is going on, but my sleep quality, which was already bad, has decreased dramatically over the last weeks. I can sleep, but I have a very light sleep and wake up much more tired than I used to. Somedays, I feel so exhausted and dizzy that it takes me over an hour to get out of bed, and even then, I stumble on everything during the first hour or two after getting up. I can't even go down the stairs without grabbing the railing to avoid falling.

#Fibromyalgia #Sleep #ChronicPain

 
Read more...

from Sirius

Reflexões sobre a memória, a oralidade, a escrita e a retórica.

Thoth

Sócrates (segundo Platão) no diálogo Fedro, em determinado momento nos apresenta o seguinte mito, relativo à linguagem escrita:

Bem, ouvi dizer que na região de Náucratis, no Egito, houve um dos velhos deuses daquele país, um deus a que também é consagrada a ave chamada íbis. Quanto ao deus, porém, chamava-se Thoth. Foi ele que inventou os números e o cálculo, a geometria e a astronomia, o jogo de damas e os dados, e também a escrita. Naquele tempo governava todo o Egito, Tamuz, que residia ao sul do país, na grande cidade que os egípcios chamam Tebas do Egito, e a esse deus davam o nome de Amon. Thoth foi ter com ele e mostrou-lhe as suas artes, dizendo que elas deviam ser ensinadas aos egípcios. Mas o outro quis saber a utilidade de cada uma, e enquanto o inventor explicava, ele censurava ou elogiava, conforme essas artes lhe pareciam boas ou más. Dizem que Tamus fez a Thoth diversas exposições sobre cada arte, condenações ou louvores cuja menção seria por demais extensa. Quando chegaram à escrita, disse Thoth: “Esta arte, caro rei, tornará os egípcios mais sábios e lhes fortalecerá a memória; portanto, com a escrita inventei um grande auxiliar para a memória e a sabedoria.” Responde Tamuz: “Grande artista Thoth! Não é a mesma coisa inventar uma arte e julgar da utilidade ou prejuízo que advirá aos que a exercerem. Tu, como pai da escrita, esperas dela com o teu entusiasmo precisamente o contrário do que ela pode fazer. Tal coisa tornará os homens esquecidos, pois deixarão de cultivar a memória; confiando apenas nos livros escritos, só se lembrarão de um assunto exteriormente e por meio de sinais, e não em si mesmos. Logo, tu não inventastes um auxiliar para a memória, mas apenas para a recordação. Transmites para teus alunos uma aparência de sabedoria, e não a verdade, pois eles recebem muitas informações sem instrução e se consideram homens de grande saber, embora sejam ignorantes na maior parte dos assuntos. Em consequência, serão desagradáveis companheiros, tornar-se-ão sábios imaginários ao invés de verdadeiros sábios.

Outro dia desses me dispus a gravar um áudio vídeo e nas primeiras tentativas tentei ser espontâneo, tendo muita dificuldade para falar. Parei, escrevi o conteúdo do que iria falar, fiz algumas correções e alterações. Somente assim, seguindo esse roteiro, consegui, enfim, gravar o vídeo de maneira satisfatória.

Recorri a essa tecnologia, criticada por Sócrates no mito, que é o recurso da linguagem escrita. Quão imerso estou na necessidade de uso da linguagem escrita?! A ponto de reconhecer certa incapacidade de me expressar oralmente de forma espontânea?! E vocês? Sentem essa dificuldade?!

Pois bem, recentemente recordei um diálogo que tive com a minha irmã faz alguns anos. Ela, que, diferentemente de mim (ateu), é do candomblé, e historiadora, e certa vez me disse que a história de sua religião é passada oralmente, pois a tradição não confia na escrita.

Recordei-me, cabe mencionar, porque um amigo meu me compartilhou uma matéria sobre a necessidade de alargarmos o conceito de “música clássica”, pois além da música de câmara europeia, mostrava a riqueza de músicas tradicionais de outras culturas: na Índia, Japão e, finalmente, na África.

Em relação à África, fiquei fascinado com a beleza da sonoridade da kora (uma espécie de alaúde-harpa), conforme a imagem abaixo, tocada por bardos (chamados Jali) do Guiné , Guiné-Bissau , Mali e Senegal.

Kora

Os Jali são historiadores, genealogistas e contadores de histórias tradicionais que possuem uma incrível memória e inteligência, transmitindo suas músicas, histórias e arte aos seus descendentes.

As capacidades dessas pessoas são completamente destoantes das nossas, no que diz respeito a conseguirem armazenar memórias e acessarem sua mente diretamente (ao invés de ir consultar anotações em um caderno) ao serem consultadas sobre algum fato ou evento histórico, sendo certo que a música ainda as auxilia na rememoração, uma coisa simplesmente bela.

Fico pensando, então, o quanto nos limitamos e somos diferentes dos bardos e oradores do passado, ao adotarmos prioritariamente a linguagem escrita e que tipo de humanos estamos nos tornando...

Podemos até deter conhecimento científico moderno, podemos estar perto de alguma veracidade, mas como transmitimos o que sabemos, sem a prática de acessar imediatamente a memória e o intelecto que a oralidade nos propicia?!

Em um debate contra cínicos, fascistas, propagandistas de mentiras e embustes, teríamos capacidade de responder de imediato, com precisão cirúrgica, ao contrário do que vimos no debate do sr. Álvaro com Arthur do Val, no podcast “inteligência limitada”?!

Termino aqui com um agradecimento ao Guilherme Celestino (amigo do CPII e professor de filosofia) por trocar ideias comigo sobre textos filosóficos, tendo inclusive me lembrado recentemente deste mito presente no diálogo Fedro, e acrescento mais um trecho do mencionado diálogo, em que Sócrates imagina uma resposta que a habilidade/arte da retórica, tão criticada por ele, daria-lhe, caso ele continuasse a avaliar levianamente:

que estais a tagarelar, homens ridículos? Eu não obrigo ninguém que ignore a verdade a que aprenda a falar. Mas aquele que seguir o meu conselho tratará de adquirir primeiro os conhecimentos acerca da verdade para, depois, se dedicar a mim. Mas uma coisa posso afirmar com orgulho: sem as minhas lições, a posse da verdade de nada servirá para persuadir.

Link para comentários.

#Filosofia #Linguagem #Oralidade #Retórica #Platão

 
Leia mais...

from PlayingAround

Failing to Analyze Hajime Mirai

The following is my attempt analyzing the Hajime Mirai variant, including wondering why ida wouldn’t disassemble, why upx wasn’t unpacking the malware sample, and what I learned over the process. The main reason why was I gave myself a one week crash course on malware analysis and looking into IOC and tried a live sample MJH and I pulled from a honeypot we have setup the past few weeks ago. I have learned many things despite my failings that is presented in this blog post.

Static analysis

The first thing when I downloaded the malware sample is to run strings and hexdump. It didn’t pull any significant information no tangible words other than the fact it was an elf file for linux. Digging though I than attempted to run through IDA on linux in an attempt to reverse it into assembly and then continued to struggle wondering why it wouldn’t open this led me into an adventure into packers.

Packers, UPX, unpacking, and a continued struggle session

I ran into the detect it easy packer for linux it a really good tool that reads the hex values and detects which packer is used if one is used. I figured the reason the malware wasn’t running was the fact that it was in a packer was encoding it preventing ida from doing it’s magic. That isn’t how it works, but I was on the right track about the packer being involved with malware. After using D.I.E (detect it easy) I was given this.

figure1 Figure 1 a snapshot of the packer upx as it’s packer.

So, simple enough I just have to run the sample though upx and we have our malware we can analyze, or at least that what I thought.

figure2 Figure 2 upx not detecting any packing.

So now I was confused for awhile now I was trying to play with LZMA part of it, but after awhile I figured I was just struggling to struggle and gave up.

Any run and trying to walk around the issue.

Now after some googling I know Hajime was based of Mirai, but there was a lot I didn’t know about Hajime, like how it was p2p iot botnet. It accessed and issued commands based on a Distributed Hash Table. So I figured I’d try to piggy back off other peoples work and dig into Hajime and other similar samples. Now there are Hajime samples on anyrun, but searching the hash leads to these results

figure3 Figure 3. everyone trying to run an elf binary on windows.

Eventually I found abuse.ch yara scanner and desided to throw it threw the yara scanner and it dumped out this.

figure4 Figure 4 yara results of abuse.ch yara scanner

so there is a detection against unpacking so I know I’m on the right track

I eventually gave up and removed the network card and tried to run the malware and see what would happened and “bash: ./020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0.elf: cannot execute binary file: Exec format error”

The reason I was having such a hard time is that it’s arch was MIPS R3000 I am currently googling how to emulate MIPS R3000 on x86_64 now and trying to figure out my next step, but I wanted something to show for it.

Malware sample sha256: 020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0 It can be downloaded via malware bizarre https://bazaar.abuse.ch/download/020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0/

 
Read more...

from LearningNeon

Intro (h1)

The following is my attempt in reversing and analyzing the Mirai variant, including wondering why ida wouldn’t disassemble, why upx wasn’t unpacking the malware sample, and what I learned over the process. The main reason why was I gave myself a one week crash course on malware reversing and tried a live sample MJ and I pulled from a honeypot we have setup the past few weeks ago. I have learned many things despite my failings that is presented in this blog. If you have any experience in any of these fields you will look at this thinking what was I thinking and to be frank I wasn't just trying out some new things and some shooting from the hip.

Static analysis (h2)

The first thing when I downloaded the malware sample is to run strings and hexdump. It didn’t pull any significant information no tangible words other than the fact it was an elf file for linux. Digging though I than attempted to run through IDA on linux in an attempt to reverse it into assembly and then continued to struggle wondering why it wouldn’t open this led me into an adventure into packers.

Packers, UPX, unpacking, and a continued struggle session (h2)

I ran into the detect it easy packer for linux it a really good tool that reads the hex values and detects which packer is used if one is used. I figured the reason the malware wasn’t running was the fact that it was in a packer was encoding it preventing ida from doing it’s magic. That isn’t how it works, but I was on the right track about the packer being involved with malware. After using D.I.E (detect it easy) which saw the packer UPX[LZMA, brute modified]

upx

So, simple enough I just have to run the sample though upx and we have our malware we can analyze, or at least that what I thought.

upx not detecting anything

So now I was confused for awhile now I was trying to play with LZMA part of it, but after awhile I figured I was just struggling to struggle and gave up.

Now after some googling I know Hajime was based of Mirai, but there was a lot I didn’t know about Hajime, like how it was p2p iot botnet. It accessed and issued commands based on a Distributed Hash Table. So I figured I’d try to piggy back off other peoples work and throw the hash into anyrun and got this.

anyrun

Everyone trying to run this elf binary on a windows system. I don't really know the backstory if it's a automated process, but it didn't help much.

Eventually I found abuse.ch yara scanner and desided to throw it threw the yara scanner and it dumped out this.

yara-scan

so there is a detection against unpacking so I know I’m on the right track

I eventually gave up and removed the network card on my VM and tried to run the malware and see if I can do any dynamic analysis.

“bash: ./020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0.elf: cannot execute binary file: Exec format error”

The reason I was having such a hard time is that it’s arch was MIPS R3000 I am currently googling how to emulate MIPS R3000 on x86_64 now and trying to figure out my next step, but I wanted something to show for it, so I wrote this, hopefully you had fun reading my blunders.

Malware sample sha256: 020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0 It can be downloaded via malware bizarre https://bazaar.abuse.ch/download/020f1fa6072108c79ed6f553f4f8b08e157bf17f9c260a76353300230fed09f0/

 
Read more...