Objective: You have multiple Visual Studio projects (using the same technology stack) under a single git repository and you need to manually add a .gitignore file.
Instead of copy/pasting an existing .gitignore file, let Visual Studio generate it for you.
2 Steps to Add the .gitignore File via Visual Studio
Inside Visual Studio, open your solution and click the tab “Team Explorer”
Then click “Add” under Ignore & Attributes Files -> Ignore File
Steps to add .ignore file in the Team Explorer tabAfter successfully adding the .gitignore file
This will add the .gitignore file in your root git repository folder. So you should not need to repeat the projects for other Visual Studio projects in the same folder (provided they are all using the same technology stack).
To upgrade a Phoenix project, edit mix.exs, look for the line (was upgraded from 1.5.1 to 1.5.4):
{:phoenix, "~> 1.5.4"},
To upgrade the Phoenix installer itself, run in the terminal (example shows upgrading phx_new 1.5.3 to phx_new 1.5.4):
> mix local.phx
Resolving Hex dependencies...
Dependency resolution completed:
New:
phx_new 1.5.4
* Getting phx_new (Hex package)
All dependencies are up to date
Compiling 10 files (.ex)
warning: redefining module Mix.Tasks.Local.Phx (current version loaded from ~/.mix/archives/phx_new-1.5.3/phx_new-1.5.3/ebin/Elixir.Mix.Tasks.Local.Phx.beam)
lib/mix/tasks/local.phx.ex:1
Generated phx_new app
Generated archive "phx_new-1.5.4.ez" with MIX_ENV=prod
Found existing entry: ~/.mix/archives/phx_new-1.5.3
Are you sure you want to replace it with "phx_new-1.5.4.ez"? [Yn] y
* creating c:/Users/sanji/.mix/archives/phx_new-1.5.4
> mix phx.new --version
Phoenix v1.5.4
Finally, if you updated mix.exs file for any project, run:
Write a list comprehension that finds all the Pythagorean triples for right triangles with sides shorter than 100. A Pythagorean triple is three integers a, b, and c, where a² + b² = c².
In Elixir it takes a line of code with pattern-matching to produce this.
Note the 3 patterns below, nested loops, scary I know. But at least rather than starting from 1 each time, we loop through 1 more than the last value of the outer loop.
a<-1..99,
b<-(a+1)..99,
c<-(b+1)..99
And the final pattern which make it all work like magic:
Write a function even_length? that uses pattern matching only to return false if the list you pass it has an odd number of elements, true otherwise.
This is a fun little exercise in Elixir. First we match a single item in the list (odd number) which is false. Then match exactly two items (even number) and return true. Then the 3rd function matches the first 2 elements (as throwaway) and recursively tails the list to match the first two patterns.
defmodule Lists do
def even_length?([_a]), do: false
def even_length?([_a, _b]), do: true
def even_length?([_a, _b | t]), do: even_length?(t)
end
Windows: version 10 Sumatra PDF: version 3.2 64-bit
A dark mode for Sumatra PDF is really easy – you just need to tinker with 3 lines of code in the settings.
Why Use Sumatra PDF?
In my opinion, it’s the best PDF reader. It’s small in size, super-fast and doesn’t have any annoying cruft.
Why a Dark Mode (Night Mode)?
If you code for long periods of time, then it’s really great to have your code editor run in dark mode. This greatly reduces the strain on the eyes.
But let’s say you are also following along an e-book, maybe a PDF and you switch to Sumatra PDF. The default setting is black text on white background. Immediately your eyes are shocked with bright luminescent white light. It’s as if you were relaxing in a room with the lights switched off and suddenly someone walked in and abruptly turned the lights on.
As you are coding along you have to switch back and forth multiple times between your PDF reader and code editor. It can be really jarring for the eyes and nerves.
How to Enable Dark Mode?
In Sumatra PDF, click on the Menu -> Settings -> Advanced Options
This should open the SumatraPDF-settings.txt file in your text editor. Change the following 3 lines under the heading FixedPageUI:
TextColor changes the text color of the PDF document. Background color changes, well the background color of the PDF document. GradientColors will change the background window of Sumatra PDF.
I usually have 3 simple and separate tasks for a XAMPP upgrade or any general development environment migration (for example when moving to a new Windows or Mac hardware).
Moving the source codes, files and assets: copy the www folder with all the project source codes local virtual host domains
Apache configuration: edit the httpd.conf and httpd-vhosts.conf files
MySQL migration: migrate the database
Source files
Usually I have a separate www folder configured with vhosts.
Apache Configuration
I only change the following line in httpd.conf because I like to develop on port 8080.
Listen 8080
And as a habit (Debian and FreeBSD) check if the vhosts file is included:
Include conf/extra/httpd-vhosts.conf
The httpd-vhosts.conf file has multiple entries (for each project or local domain name):
While it might be OK to dump the database via PHPMyAdmin, it’s not a good idea to restore it via a web interface. For example my combined database size is almost 1 GB.
So ensure you have a decent max_allowed_packet size in specified in my.ini:
max_allowed_packet=16M
Then run the database restore command manually from the command line. For example:
Microsoft Edge has been around for a while, but IE 11 is not dead! There are people in the real world who still use IE 11, so the development process especially JavaScript implementation has to account for it.
While there are many Github projects and NPM packages providing Polyfill for URLSearchParams, the easiest way to use it is using a CDN link to one of the Polyfill implementations. Here is one from:
You may have several version of the JDK installed on your machine. By default you may be using JDK 11 or even 13, but GlassFish requires JDK 8.
Issue
Running asadmin generates the following error
Exception in thread “main” java.lang.NullPointerException at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.initializeServiceLocator(AbstractModulesRegistryImpl.java:128) at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.newServiceLocator(AbstractModulesRegistryImpl.java:120) at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:194) at com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl.createServiceLocator(AbstractModulesRegistryImpl.java:200) at com.sun.enterprise.module.single.StaticModulesRegistry.createServiceLocator(StaticModulesRegistry.java:64) at com.sun.enterprise.admin.cli.CLIContainer.getServiceLocator(CLIContainer.java:193) at com.sun.enterprise.admin.cli.CLIContainer.getLocalCommand(CLIContainer.java:231) at com.sun.enterprise.admin.cli.CLICommand.getCommand(CLICommand.java:207) at com.sun.enterprise.admin.cli.AdminMain.executeCommand(AdminMain.java:347) at com.sun.enterprise.admin.cli.AdminMain.doMain(AdminMain.java:282) at org.glassfish.admin.cli.AsadminMain.main(AsadminMain.java:33)
Fix
Edit: ~\glassfish\config\asenv.bat Assuming JDK 8 installation path is C:\Program Files\Java\jdk1.8.0_241
You are working on code or writing something important, you are in the flow, you reduce or increase the volume a bit for the perfect sound-level and pops-up this ugly big annoying Windows 10 volume control disrupting not only your thought process but captures the screen real-estate for 5 seconds before it fades away.
This is down-right evil and will no longer be tolerated 🙂 Well thanks to Marcus Venturi there is a way to disable this.