Funch-Tech-Logo

At FunchTech, we specialize in custom software solutions, database development, and brand creation—turning your ideas into seamless digital experiences.


Hi, I'm Johnny Funch.

Johnny-Funch-Profile-Pic

Originally from Denmark, I moved to New York in 1998, where I had the privilege of working with some of the world's leading financial and technology firms, including Morgan Stanley, Reuters, Aetna and Bank of America.

In 2006, I relocated to Amelia Island, Florida, drawn by its year-round warmth and relaxed lifestyle. Beyond my professional endeavors, I’m passionate about technology, problem-solving, and creativity—whether it’s coding, tinkering with electronics, building with LEGO, or experimenting in the kitchen.

At FunchTech, we’re dedicated to delivering high-quality software and website solutions tailored to your needs. Let’s create something great together.

TECHNOLOGIES

One of my favorite things about what I do is that there's always new things to learn, new technologies to explore, and always someone smarter than you to teach you fun things. That goes for my other passion of cooking as well.

CSS3
Hover for Description

PORTFOLIO

BLOG

Random stuff I stumble upon

Fondant Potatoes'
Fontant Potatoes
What's Installed on your Computer?
By Johnny Funch - March 31, 2025
Easy delicious fondant potatoes
I've made this recipe a million times, it's easy, yummy and makes you look like a kitchen genius.
Ingredients:
4 large russet potatoes
1 tsp kosher salt
1/2 tsp black pepper
1/2 cup unsalted butter
2 tbsp Extra virgin olive oil
50g unsalted butter
250 ml chicken broth
1/2 cup heavy cream
1/4 cup grated Parmesan
1/4 cup chopped parsley
1/4 cup chopped thyme
1/4 cup chopped garlic
                                            
Instructions:
Preheat oven to 375°F.
Peel and cut the potatoes into 2-inch cylinders.
Heat a large skillet over medium heat and melt the butter.
Add the potatoes and sear until golden brown on all sides.
Add the chicken broth, heavy cream, Parmesan, parsley, thyme, rosemary, and garlic.
Season with salt and pepper.
Transfer to the oven and bake for 45 minutes.
Serve and enjoy!
                                        
What's On Your Computer'
What's Installed on your Computer
What's Installed on your Computer?
By Johnny Funch - March 10, 2025
Ever wonder what's actually installed on your computer?
Not long ago I kept getting the dreaded BSOD om my Windows 11 desktop. It's been a while since I rebuilt it and I'm probably due, but I needed to find out what was actually installed.
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | 
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize
                                  
Blog Image
Use Space On Unused Onedrive Accounts
Use the included storage on your OneDrive accounts
By Johnny Funch - March 10, 2025
Have unused OneDrive Storage Accounts?

When subscribing to Office 365, you get a number of licenses, but you can't really use them without signing out and back into another account, and even then it's a pain because the directory would be the same.

You could use them for storage/backups though by starting a Windows Sandbox and using it from there. I created email accounts that matched the use so I could remember what was where. Yes yes I know harddrives are cheap, but you shouldn't really store your backups at your house.

>
Blog Image
Create SQL Insert Scripts
Create a script to create SQL insert scripts.
By Johnny Funch - March 10, 2025
Create Insert Scripts for an online SQL server.

In SSMS you can ask it to create insert scripts for you, but my hosting company uses some front-end application that does not allow me to do that, and the conventional way to create them timed out due to the amount of rows.

So I created a script that will create individual lines that will not time out.

SQL: Create Insert scripts
-- Create a temporary table to store the generated INSERT statements
CREATE TABLE GeneratedInserts (
    InsertStatement NVARCHAR(MAX)
);

-- Declare variables for each column in the table
DECLARE 
    @ID INT,
    @EventDate DATETIME,
    @ArtistID INT,
    @VenueID INT,
    @Description NVARCHAR(MAX),
    @FromTime NVARCHAR(50),
    @ToTime NVARCHAR(50),
    @Created DATETIME,
    @CatID INT,
    @CreatedBy NVARCHAR(50),
    @EventStart DATETIME,
    @EventEnd DATETIME,
    @Link NVARCHAR(50),
    @LinkDesc NVARCHAR(255),
    @InsertStatement NVARCHAR(MAX);

-- Cursor to loop through each row in the dbo.Events table
DECLARE row_cursor CURSOR FOR
    SELECT 
        ID,
        EventDate,
        ArtistID,
        VenueID,
        Description,
        FromTime,
        ToTime,
        Created,
        CatID,
        CreatedBy,
        EventStart,
        EventEnd,
        Link,
        LinkDesc
    FROM dbo.Events;

OPEN row_cursor;
FETCH NEXT FROM row_cursor INTO 
    @ID, @EventDate, @ArtistID, @VenueID, @Description, 
    @FromTime, @ToTime, @Created, @CatID, @CreatedBy, 
    @EventStart, @EventEnd, @Link, @LinkDesc;

WHILE @@FETCH_STATUS = 0
BEGIN
    -- Build the INSERT statement for this row
    SET @InsertStatement = 
        'INSERT INTO dbo.Events (ID, EventDate, ArtistID, VenueID, Description, FromTime, ToTime, Created, CatID, CreatedBy, EventStart, EventEnd, Link, LinkDesc) VALUES (' +
        CAST(@ID AS NVARCHAR) + ', ' +
        COALESCE(''''+CONVERT(NVARCHAR, @EventDate, 120)+'''', 'NULL') + ', ' +
        COALESCE(CAST(@ArtistID AS NVARCHAR), 'NULL') + ', ' +
        COALESCE(CAST(@VenueID AS NVARCHAR), 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@Description, '''', '''''')+'''', 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@FromTime, '''', '''''')+'''', 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@ToTime, '''', '''''')+'''', 'NULL') + ', ' +
        COALESCE(''''+CONVERT(NVARCHAR, @Created, 120)+'''', 'NULL') + ', ' +
        COALESCE(CAST(@CatID AS NVARCHAR), 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@CreatedBy, '''', '''''')+'''', 'NULL') + ', ' +
        COALESCE(''''+CONVERT(NVARCHAR, @EventStart, 120)+'''', 'NULL') + ', ' +
        COALESCE(''''+CONVERT(NVARCHAR, @EventEnd, 120)+'''', 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@Link, '''', '''''')+'''', 'NULL') + ', ' +
        COALESCE(''''+REPLACE(@LinkDesc, '''', '''''')+'''', 'NULL') +
        ');';

    -- Insert the generated SQL into the temporary table
    INSERT INTO GeneratedInserts (InsertStatement)
    VALUES (@InsertStatement);

    -- Fetch the next row
    FETCH NEXT FROM row_cursor INTO 
        @ID, @EventDate, @ArtistID, @VenueID, @Description, 
        @FromTime, @ToTime, @Created, @CatID, @CreatedBy, 
        @EventStart, @EventEnd, @Link, @LinkDesc;
END

-- Close and deallocate the cursor
CLOSE row_cursor;
DEALLOCATE row_cursor;

-- Retrieve all generated INSERT statements
SELECT * FROM GeneratedInserts;

          
Blog Image
Cool sites for CSS tools, tricks and fun
CSS Tools & Tricks
By Johnny Funch - March 10, 2025
Ever expanding list of interesting websites
Get in Touch
2928 Tidewater St. Fernandina Beach, FL 32034
www.funchtech.com
Contact Image