Paper sizes people!

Okay I just added a new category on my blog. Hello Printing! This is due to the fact that I have started in a new role and its an Industry that I have never dealt with before!

For most part its a marketing business that deals with all sort of things pertaining to the subject. And majority of the company deals with marketing print jobs such as flyers, brochures, letterheads, invoices etc. Mainly direct mails!

One thing you will want to know are of course the ‘stocks’ as the commercial term for papers!

Anyways first off you will definitely want to familiarize yourself with paper! We all know about A4 and A3 sizes but never really thought about what the numbering means. And to be honest I would never in my programming experience ever think about this stuff, but to effectively do my job there, I gotta to know this otherwise Im just shooting blanks!

In summary A letter is actually a standardize ISO 216(International Organization of Standardization) for paper. And there is a B which isn’t widely used but mostly good for posters, then there is the C, which I did not know anything about! Envelopes!

So if you are ever lost with the measurements and terms when it comes to paper sizes come back to this page and here is the link to make you come back home. And yes I am talking to myself here.

Below the link to paper sizes and a very informative website indeed:
http://www.paper-sizes.com/

Credit and big thanks to the author.

PS: You might also want to know about RA or SRA papers such as SRA3 for A3, these are untrimmed papers for cutting A3 bleeds but that is another post altogether!

Untrimmed Raw Format (RA and SRA)
http://www.papersizes.org/ra-sra-untrimmed.htm

http://papersize.org.uk/paper/sra-untrimmed-sizes/

Port forwarding and Software Update Implementation

Port Forwarding
I was trying to set up remote access to my router from outside world(I have done it before) and have access to network drive and for the love of me, could not seem to get it to work.

It is so easy for a long time of not doing it and understanding how they all work, your way of thinking just shifts and completely throw you off balance. You know how they work and such but you just need that one sentence to explain it all until… I only needed to see one picture.

Simple illustration of how port forwarding works.

And everything just became clear and smooth sailing to me once again!

Software Update Implementation
As you write software and programs and such, you think how do they actually perform an update onto itself, so I went and ask Google. Its actually pretty basic in terms of step by step process, although if you are only making a small simple program sometimes the technology you are using have it figured out for you.

Just like program in C#.NET, they have the ClickOnce installer where you can upload your package to a server and have it check by the computer if you have the latest version of the application. You can either go that way or a  more traditional route.

Have a separate process in your program that checks the server if you have the latest version installed, and allow the program to download the new version. Then ask the user to install the new version or have it closed and let the updater do the job for you by replacing all necessary files. An will run the newly updated program to continue.

For more information about this topic:
https://stackoverflow.com/questions/1748586/i-dont-get-how-a-program-can-update-itself-how-can-i-make-my-software-update#_=_

Windows Install change hardware configuration

Ever wondered how licensing works now comes Windows 10? Back in previous Windows OS, as soon as your pc glitches the last resort for salvation is through fresh install of the system.

I can just boot from my DVD drive using the OS CD and input back your serial number and away you go.

This is still applicable in the latest Windows 10. You can also create a boot USB disk if you are trying to install to a different drive. But somewhat came as a bit confusing as many devices now came pre-installed with the OS.

If you are building your own system, you will need to buy your own license or if you have a Windows 8 or 7. You can go to the upgrading route. When your build PC you have to know that, new motherboard = new license.

Here is a link that will help you understand a little bit the process how installation of new OS works.

How does Windows 10 licensing status change with changes in hardware configuration

In other words, when you buy a new PC loaded with operating system, you need to ask how they installed the OS. And make sure you get the serial key off them by hook or by crook if its not already on the physical box on the sticker.

 

Marshalling and Serialization

These 2 concepts you will often encounter when writing applications especially dealing with data and communication between 2 programming languages.

They seem synonymous to each other but have slight difference.

Serialization is a process of converting an object ready to be written on disk and transmission. In layman’s term object converted into bytes.

Marshalling is to serialize an object just like the explanation above but also gives functionality to convert them back to their original form. Let say C# object serialized and written to disk as “file.dat”, and for C++ to read the file, and a function gets exported as well. When you call that function the data inside the object gets return and process of marshalling concludes.

This also copy and pasted from the link:

In regards to commonality between marshalling and serialization, they both have in common to allow streaming of a representation of an object or a hierarchy of objects to typically be put in a medium (file, memory) for the reverse process to restore the initial object or object hierarchy.

Reference link below:
https://www.quora.com/What-are-the-differences-between-serialization-and-marshalling

 

C++: Range-Based loops

I have come across a new way to loop through collections and range.

It consist of example code below:

for (auto const &x : vec)
{
  // x is a reference to an const item of vec
  // We can not change vec's items by changing x 
}

This is definitely new to me and a welcome change as using auto creates a placeholder for any types and can be anything with a proper cast to return back to its original form.

The new loop also simplifies the code as more explain by the link:

https://stackoverflow.com/questions/15176104/c11-range-based-loop-get-item-by-value-or-reference-to-const

Visual Studio: Useful Shortcuts

General:
Ctrl+Shift+ B  | Build the project
Ctrl + Shift + ] – to select inside bracket you are currently on
Ctrl + – | Ctrl + Shift + – | Navigate backwards and forward
Ctrl+K then Ctrl+C | Comment selected or cursor
Ctrl+K then Ctrl+U | Uncomment selected or on the cursor
Ctrl+K then Ctrl+F | Format and beautify selected code
Ctrl+L | Delete a line or selected
Ctrl+U | Changes the selected text to lowercase characters
Ctrl+Shift+U | Changes the selected text to uppercase characters
Ctrl + W | Selects the word near the cursor or highlighted one
Ctrl+Tab | Change active document among the open ones.
Ctrl+Shift + Space | Show tool tip for parameter function.

Enter ANSI, and Unicode Character Encoding

Been developing a lot in .NET and C/C++ and been overwhelm by the fact that character encoding plays a part in building applications. One might not know that it existed under the hood but understanding why they are there is crucial to getting different quirks and bugs.

In laymen term each machine or computers have a standard default character encoding that translates each character to a byte and multi-byte (Unicode). Mostly nowadays Unicode is used to support wide variety of characters from native English alphabet to other non-english like Chinese, Japanese etc.

Check the link below for a very thorough explanation and more about character and coding and types in Windows system.

Including _T(TCHAR) macro that tells the compiler to use char or wchar_t and L”Literal” to interpret the string as a unicode multibyte string.

Copied and Pasted from the article:
The ## symbol is token pasting operator, which would turn _T("Unicode") into L"Unicode", where the string passed is argument to macro – If _UNICODE is defined. If _UNICODE is not defined, _T("Unicode") would simply mean "Unicode". The token pasting operator did exist even in C language, and is not specific about VC++ or character encoding.

Note that these macros can be used for strings as well as characters. _T('R') would turn into L'R' or simple 'R' – former is Unicode character, latter is ANSI character.

No, you cannot use these macros to convert variables (string or character) into Unicode/non-Unicode text

https://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc

2017 © Ideas, designs and algorithms