Categories
Resources Web Development

How to get TinyMCE to not destroy image upload URL’s

Came across a weird not so feature of TinyMCE where it munges the URL your upload script returns when it uploads an image. For example if your upload script returns a url of http://example.com/folder/image.jpg. TinyMCE takes it upon itself to rewrite that URL breaking it to ../../folder/image.jpg  I am not sure why but I think it is trying to help you in some way.

The best clue I could find in the docs as to why this happens is at the bottom of the page in the CORS section here. It appears TinyMCE is removing the domain you add to the url then it cuts from the current page. The problem I encountered was if my page was blog it would remove the http://example.com part and replace it with ../../blog/folder/image.jpg which is not what I wanted.

I was about to replace TinyMCE but I decided to try something else. I did some googling and found this in the docs.  

I included this in my tinymce configs.

relative_urls : false,
remove_script_host : false,
document_base_url :  "{{ prependURL }}"

Those 3 lines of code fixed it all. Totally didn’t expect TinyMCE to munge the URL’s I returned. This ate up an entire day as I kept thinking the reason the image didn’t display was because my code wasn’t creating the URL’s correctly. Then I thought it was my Nginx configs. Then before giving up on TinyMCE  I did this last thing.

prependURL is a variable that contains the url of website hosting the image such as https://example.com TinyMCE prepends that to the url you return to it, even if https://example.com is already part of it. Otherwise it removes https://example.com and replaces it with a relative URL such as ../../folder/image.jpg

I hope this saves someone else time.

Categories
Uncategorized

Symfony doctrine remove column from entity table

I had to dig and dig and dig to find this. Explanation here.

php bin/console doctrine:migrations:diff

instead of making a migration, this command makes the migration file for you. Then you can run this command

php bin/console doctrine:migrations:migrate

To actually change the table.

Categories
Resources Software Development Web Security

AWS autoscaling links and resources

AWS autoscaling lets you set up groups of EC2 instances which are controlled by a load balancer. The load balancer in turn makes sure your app has the correct number of EC2 instances running at all times. If your traffic is high it adds the maximum that you set. If traffic goes down it adjust to have the minimum EC2 instances that you set.

This system is great for startups who have no idea if their app will go viral or just flop. Often they just flop. But if you are lucky and it takes off you want to be able to handle the traffic so you don’t lose users.

Documentation link to AWS autoscaling

Running EC2 instances at Scale with autoscaling groups – small Ebook that walks through the whole process including using CodeDeploy.

Categories
Resources Software Development

AWS resources and links

AWS Parameter Store vs. AWS Secrets Manager – great short article that covers use cases and information about each and when to use.

Categories
Resources Software Development

Linux how to copy files from one directory to another without copying the directory name

This is for later when I forget how to do this. Basically I wanted to know how to move files from one directory into another recursively without the cp command also copying the directory name.

Basically if you use cp -r /directory then the contents of the directory and all within are copied, but this also copies the name of the current directory.

expect the unexpected
With linux expect the unexpected

The cp command is not logical, it doesn’t do what a user would expect.  Instead of just copying the files from /var/www/example to say /var/www/new-directory like one would logically expect, this command copies the files into new-directory but also puts them inside example so you end up with /var/www/new-directory/example/fileshere which is probably not what anyone expects.

So what kind of sorcery is required to get the outcome we would expect?
You add a tiny little dot to the first directory like so
cp -r /var/www/example/. /var/www/new-directory

Yes it is very important you structure the command EXACTLY like the above or else you won’t get what you want. Including the final slash with a dot after example/. tells the cp command to not copy the directory name, but to put all the files from that directory into the other.
Know you know…

now you know

 

 

Categories
Resources Software Development

GIT how to check user settings

With git you can configure global or per repository settings. Global means any repository on your computer that you want to use will use these settings unless you specify specific settings per repository.

The settings I am speaking of are your username, email and remote origin etc.  This article at this link covers the basics of setting your email and username.

But how do you see what the current values of a repository are? Navigate to the repository, to the level where your .git directory is and type the following:
git config –list

You should see something like the following:

git configs example
example git configs output

You can also view individual settings such as user.name or user.email with the following
git config user.name

git config user.email

Those commands will output the current values that are set. Basically you are telling git to echo/print the current values.
Here is a list of all of the values you can set in the git configuration.

Here is a link to the documentation that explains how to get and set git configuration values.

The documentation links show mostly how to set global settings for git, many times you will want per repository settings such as the origin. This article covers nicely how to set per repository settings.

Bitbucket has created this really nice git tutorial and documentation.

Here is another page of links and resources about GIT

Categories
Resources Software Development

Devops resources and links

Devops is the process of going from code to deployment operations.

When to use AWS OpsWorks vs. CloudFormation or Elastic Beanstalk

 

Categories
Resources Web Development

Server Environmental variables resources and info

About environmental variables – an introduction to environmental variables and how they work on the server.

Categories
Resources Software Development

Phpmyadmin links and resources.

I wanted to use Phpmyadmin without the Apache install running. I couldn’t figure it out, but someone else did.

Here is a link to how to use phpmyadmin without apache

Categories
Resources Web Development

Single page apps suck links and resources

Single page apps built with Javascript are the super hyped rage these days. This design goes against all of the hard learned lessons of the past 30 years.

The main reason SPA’s suck is networks are unreliable and SPA require large amounts of Javascript to be transferred to a users device. Most devices are mobile these days. If a users has a slow connection the app will take for ever to load or timeout and not load at all.

Another reason SPA’s suck is they assume all users are using the latest greatest highest powered device. This leaves out more than half the planet and is a very arrogant approach basically saying you are not important to us because you are poor and have a crappy device and slow connection go elsewhere you peasant.

I’ll post links here as I get time. The first one is an excellent piece covering much of why SPA’s are not a good choice.

Why you should not build your start-up as Single-Page Application?