Dalton is not just a programmer... though that is one of the things I do.
Friday, September 22, 2017
Numberwiz updated
Download link is on the Hash sum page, and here: https://goo.gl/IF9lfF
Friday, September 1, 2017
My take on censorship, Google, and freedom of speech.
![]() |
The image that finally prompted me to talk about this publicly. |
Those on the right and the left battle on and on about many things, and some of these battles are insignificant when one looks at the big picture. Currently Google controls many people's access to the Internet, and this could be both a good thing and a bad thing depending on who is manning the controls. Having a central source for all correct information is incredibly convenient but it means a few things will inevitably happen:
- One entity literally controls the basically all of the population's collective thoughts by controlling the information available. USSR, Nazi Germany, and North Korea are famous negative examples of this practice.
- Having one location with all needed information encourages people to be intellectually lazy and only rely on a certain party to tell them all of the "truth" they need.
- Competing information outlets have a really hard time bringing their ideas to the market place because everyone would rather go to their familiar source.
- Diversity of thought will lower as everyone will all think with the same information.
- Since no one on Earth is omniscient, therefore no computer system can ever have all the information on Earth.
- Since corporations are only as good as the people behind them and the majority of people are mainly motivated by money, there is no way to guarantee that an information monopoly will always see benevolent actions as beneficial to their wallets.
- What one sees as benevolent, another may see as censorship. This disagreement can be a problem if only one person or entity controls the access to information.
Before someone says something about censoring violent or graphic images and other media from children I will draw a line between censorship of opinions and keeping vulnerable people from seeing extremely graphic media. I don't see blocking a pornographic website on a school network from the students as illegitimate censorship, nor do I see trigger warnings about graphic content such as: coarse language, nudity, violence, cruelty, and drug related content as illegitimate censorship. I support some trigger warnings provided they are given without political bias and are not misleading, I want to be given a warning before watching a television show that may contain objectionable content especially if there is a fair likelihood of having children in the room so I may decide to choose a different show on my own given knowledge of the content. The easiest way to discern proper trigger warnings from censorship is choice, if there is viewer choice then no censorship is taking place but if someone wishes to stop or hinder a viewer than it crosses into censorship. If the warning is legitimate, not related to political opinion, and the viewer has the final say on whether or not the content is served to them then I have support for the warning. I support some censorship in the case of certain illegal activities, I never, ever, under any circumstances, ever (Have I said enough evers?) want anyone to easily find material inciting immediate violence, abuse of any kind towards children or adults, or anything that furthers the cause of terrorists. I would also be against content that could lead to violence but predictive justice is not easily made accurate and I believe in innocence until proven guilty so I cannot with good consciousness stop anyone from material that I think might cause some thoughts I don't want further down the line because that is really hard to prove and I don't want any big actions to happen without hard proof.
Some say keeping bad ideas away from good people will keep more good in the world. In theory this sounds reasonable but in practice this falls apart fast. No human or company is perfect and all knowing, therefore no one has the ability or the right to "play God" and tinker with free will, not even my most valued heroes or myself should have that power, no one. Imagine one day you were arrested and sentenced to prison because in 35 days from now you would commit a felony, you haven't even thought of the crime you are accused of being destined to commit yet and there is no data on your future motive or weather you were forced in some way to commit the crime for someone else. This is a little like what is happening with censorship on politics, someone has decided that an idea is so false or is destined to end badly that it should be banished into the abyss. Does this sound fair? Only when it is you doing the censoring does it sound fair, as soon as the tables turn the former censors now start whining about how unfair it is that they are silenced.
"What should I do to stop X from being spread then since I can't silence it?" This is the beauty of free speech. Let's say a person is spreading a false idea which I shall call "X", I can do more to stop the spread of this X if I prove it wrong and speak with my own ability to speak freely then if I had shouted the spreader of X down. By silencing X I say to people that my idea is so bad that I need to shut down X to make you believe it, like a champion that cheated to win it shows that I cannot survive in a fair environment. By proving X wrong I convey the message that X was in fact a bad idea and my idea was able to stop it on a level playing field without help from state wide censorship. If you think something is wrong then it's your responsibility to question it. Question every idea, even if you think it's true. We may still think the Earth is flat and the center of the universe if people had not questioned and tested the accepted belief.
"To what extent should we censor the biggest information outlet since the printing press?" Is the question we should all ask every time someone wants to shut someone down. I don't want to give a platform to those inciting immediate violence (subtle inciting of later violence is a tad harder to detect reliably), but I also don't think anyone should be censored - even if I disagree with them - as that leaves them with violence as their only option left to be heard, a situation I hope everyone wishes to avoid.
I forget where I heard this, so someone inform me if you know: "Those who make peaceful discourse impossible make violent revolution inevitable."
This thought rings true lots, once you take someones voice you don't shut them down so much as you anger and fuel their disagreement until it turns into something actually dangerous. Often times bad ideas are only possible when good ones are censored, and with enough debate and though most if not all bad ideas will cease to be sensible. If your idea can't be challenged then maybe it's not the most true.I believe in this so much that I actively seek out non Christians to debate and discuss religion with, if my idea - in this case my faith - can't stand up to scrutiny then it's probably not true. The most dangerous thing to a lie is the piercing light of truth, and the most dangerous thing to a bad idea is a good idea and a level playing field to challenge both ideas.
Censorship will backfire, potentially making violent enemies out of those silenced even if they are naturally peaceful otherwise. I stand for freedom of speech, especially if you and I disagree. If you disagree with something, question it, don't shut it down. This is why I believe small government is a good thing as it allows people to think and act on their own, but now the world is changing and government is no longer the biggest force, companies like Google are now large enough to become functioning governments on their own. Corporatism and authoritarianism are very much related, and it's important we avoid both so we can still think of Google as our friend. When someone wants to censor someone, ask them what they would feel and do if that person censored them, morality and logic should go both ways. If it's wrong for someone to steal my wallet then it's no less wrong for to steal theirs, and if it's wrong for someone to shut me down for a thought I have or say then it's equally wrong to censor them.
Let's grow up as a species, out of this childish phase. Let's grow to the point we can truly call ourselves free, independent thinking, and civilized, wild animals silence the subordinates and fight off threats to their dominance but we have the power to choose a better life where no one needs to be kept subordinate and everyone is valued higher than priceless gems. Let's build a world where we don't have to worry about dangerous ideas like Nazi propaganda because it will never survive the truth and scrutiny of the others in our society, a world where we are not valued by the money in our pockets, the color of our skin, our gender/sex, or the opinions we generate but by our willingness to better ourselves given the change and our willingness to help others better themselves. A world where there is enough to go around not because the rich are taxed heavily but because we create enough wealth to keep every willing worker above poverty, a world where after work a billionaire and a young adult with little earning power can both sit at the same bar, joking, playing some games, and other recreational activities as if their wage gap was never an issue.
Imagine a world where wage gaps are the result of only a few things: willingness to work, skill, and usefulness to one's fellow citizen. A world where the poor are not seen as victims and the rich are not seen as oppressors and thieves not due to ignorance but because the everyone is free to pursue their own goals in life even if they fail or are not profitable. I don't want to ever be seen as a victim because I'm poor and have X opinion and Y physical traits, or seen as an oppressor because I am rich and have X opinion and Y physical traits. I want a world where the poor are seen by society and themselves as temporarily embarrassed rich folk, a world where class is not an issue and nationalism is used as to keep us focused on creating a world that everyone who wants to better themselves can be a part of.
With our modern conveniences and technology there is no reason why this world I imagine cannot exist. We have cured diseases, made food cheaper to produce, but yet we still think no better than a wild animal, just stepping on anyone who would threaten our power. We fight a pointless class war over money that was for most in the higher middle class hard earned while the alpha with enough money to prop up and the drop an entire nation into poverty at will.
Many have said throughout history that a house divided against itself cannot stand, we are deeply divided in the West and we could be headed for a world where our experiment in free-ish markets and democracy will be destroyed and lost forever to be replaced by theocracy and totalitarianism. The conservatives are not your enemy, the republicans are not your enemy, we right now are the biggest threat to our freedom by allowing bullies to dictate what we can and cannot think and do for their own profit and nothing else. Don't be a fool divided against yourself or your allies. Instead be the person you want everyone else to become, always look at how to better yourself, stand for truth, and protect the freedom soldiers went to war for in WWII, grant the same freedom you value to others and the rest of society will change as their minds to. If you want to change the world, start with some backyard changes, change yourself so you can lead by example.
Friday, August 4, 2017
Moving and expanding.
I will work with my community to find a mutually beneficial solution. Once I start making money on my talents, I will be able to spend more time building, teaching, and expanding my work.
Lets talk: neuronamker@gmail.com
Wednesday, July 26, 2017
Crypto Helper: New version released.
Upgrades include:
- Fixed glitches (likely from the upgrades, not critical to security though).
- "Secure Key" feature upgraded, 512 bit hash melds with key and is transformed to cover more possible characters and increase key complexity.
- New "Key Generator" added. makes an easy way to make single line keys of any length using random characters, and they're not easy for attackers to predict.
- Toggle buttons for tabs.
- AES256 layer.
- RSA or other public key encryption algorithm.
- Split screen support
- File and folder encryption
- Email tunneling
- NFC, Bluetooth, WIFI, or USB key sharing.
- Optional key file (encrypted by master key).
- Post quantum cryptographic algorithm support
- File integrity checking
- Sound encryption (real time, like on the phone)
- Text and file compression
![]() |
Same view, with new tab |
![]() |
Key generator after switching tabs |
![]() |
1024 byte random key seeded with UNIX timestamp |
![]() |
Random 20 byte key, based on seed |
Monday, July 24, 2017
More security for Crypto Helper
![]() |
New option visible. |
I can't easily show the differences in the key security algorithm, all you'd see is different text. But the new check box for AES256 is visible.
The update should be out by the end of the week if nothing goes wrong, though programmers must always expect failure because programs tend to misbehave when one needs them to function.
Sunday, June 18, 2017
Where Crypto Helper's security comes from.
Secure Interface:
My app uses a simple interface which doesn't handle sending or receiving any external data, instead my app uses existing features in android known as the clipboard and intent. This design allows the app to automatically paste data into the input, copy output to the system clipboard, or directly export output to external apps like your email client or "secure" text messenger. This simple design also doesn't save your encryption keys, if the keys were saved then the system could be attacked by stealing them from the key stores even if they were made secure through encryption. Since the app saves nothing, once you shut the app down, all sensitive data is never moved from RAM to storage and is therefore lost and impossible for invasive investigations to recover. This means that the security of the app itself is completely dependent on the user and the device, there are no known weaknesses in my app therefore it can only be attacked by attacking the host device or user habits (two factors that are out of the hands of even the best app developers).
Algorithm Design:
Behind the scenes, my app uses simple but powerful algorithms to scramble text and make it unreadable without the correct key. The idea behind encryption is to make sensitive data impractical to derive from the encrypted data, and there are other uses of cryptography like verifying the identity of a sender. My app uses an algorithm that can be layered upon other algorithms like AES256 to make it even more secure, however it is already hard to break on its own. My app not only makes decryption without the key many times harder than encryption or decryption with the key (the mechanism behind encryption), but it also uses a phenomenon known as collisions to mask your data by making several potential solutions with no way for an intruder to tell which one is correct. One time pad is the name of the algorithm I based mine off of, it's unbreakable if a secure key is used once and never found by an intruder, it's lightweight to compute by only adding and subtracting rather than multiplying and dividing.
Features To Foil Crooks And Save You Time:
CryptoHelper gains a new level of security with a simple function I added that adds a massive amount of complexity to cryptanalysis attempts. My app has a feature where it generates random noise and injects it into the cipher-text which changes its length and makes it impossible to tell if all the text is necessary for decryption. With intruders unable to easily separate signal from noise, the text gains a new layer of protection. Crypto Helper also has a hexadecimal encoder for compatibility, if the app creates cipher-text in which has exotic characters, it makes the user's life harder if they need to type in the text so I made a feature where it outputs the hexadecimal notation for the characters to save users from a headache before one is ever found. Keys are hashed by default to save users who choose weak keys and increase difficulty of brute force attacks, users using older keys or custom keys longer than the 512 bit hash will benefit by turning off the "Secure key" feature which will use the key in verbatim. These are some features I have not found in any other application, and I am still adding more if anyone has any ideas.
Monday, June 12, 2017
Stop ads where adblock can't be installed, and save time typing IP addresses.
I'll give some background and show the steps at the end. If you want to just follow some steps or you already know what I'm about to say, then scroll to the end. I won't complain.
What you'll need: The computer you wish to apply this to, a text editor (common ones include: Gedit, Notepad, or TextEdit for Linux, Windows, and Mac respectively), and a list of the hosts you want to route. I'll show you how to get the lists.
I was browsing Google Play for Android apps that compete with my projects, I kept getting pummeled by full screen, deceptive, and flashy banner advertisements when I was looking at what features I need to compete with. I realized that I'm not alone, many of you use programs like Adblock, and I can assume most of you have noticed that ad blocking programs only work within your browser and won't stop ads within other apps. Ad blocking programs also hog your computer's resources which is especially pesky on mobile devices where they drain your battery almost as much as the ads you're blocking anyway. My solution to this will save you CPU and memory, My solution also has the advantage of working on every program running on your system and can be used to create shortcuts when working with IP addresses. This method uses some basic networking principals that everyone uses, they usually work so well that you don't notice the magic happening in cyberspace.
This tutorial harnesses something known in "nerd space" as Domain Name Service or DNS for short, it sounds intimidating but it's really simple for our purposes. Servers need to be found by clients, this is the basis of most of our Internet. Servers are the computers that host the files that make up a service like a website, clients are any machine which is used to access these computers which include laptop and desktop computers, cellular phones, tablets, and some IoT (Internet of things) devices like a smart TV. In order to use a web service, your data packets must know which numerical address points to the same computer systems as the domain you choose, this is done by DNS servers which use a massive database of domains and their numerical addresses to match your queries. Our local tiny database is not that complex because it's too small for the overhead difference to matter. Our clients have a smaller version of what a DNS server does, clients check a file called "hosts" to route known hosts to their addresses. This is useful for keeping local traffic from ever leaving your machine, programs emailing themselves internally shouldn't have to send out potentially private data over the network when the destination is within your client.
Q: Why should I do this?
A: Everyone is different but the most common reasons are to: block content such as ads or NSFW (Not Safe For Work) material, have your computer memorize addresses for you, and/or fix a network mistake made by IT personnel on your machine.
Q: Is it dangerous?
A: I have not heard of any permanent damage caused but since you are telling your machine to force a domain to be a custom address, it is possible to incorrectly route a site. This issue can be fixed by removing or modifying the line in question.
Q: Windows?
A: Yes one can do this on a windows machine. Read on for more.
Q: Will work on iOS?
A: Technically, yes. Apple has many barriers to modifying their system, I can't see anyone able to do this unless one has a jailbreak installed and has tools to modify system files.
Q: Will Mac OS X work with this?
A: Likely, and it will likely be similar to GNU/Linux, just using a different set of programs (TextEdit vs Gedit).
Q: Will my Android device last longer on a charge after this?
A: Possibly, it depends on how many ads you usually see and how much CPU each ad burns on average. Mostly you'll see less time on battery wasted watching ads you can't skip, therefore more productivity per charge even if the time on battery is unaffected.
Q: How much cellular data does this take?
A: None, it may slightly reduce the usage because ads can't load while your device is running.
Q: How does this work with a VPN?
A: I've yet to use this with enough VPN setups to say for sure but as a VPN is basically a virtual tunnel I don't think they will interfere with each other.
Q: Is this illegal?
A: Absolutely not. Where I live at the time this is written, modifying one's own system is perfectly fine so long as you are only modifying your system and not interfering with other peoples property. If you are unsure of the law around anything in cyberspace, do some research for the laws in your area, just because something is legal here doesn't mean it's legal somewhere else.
Q: Seriously, why are you using the terminal in your tutorials? Is there a way to do this from my machines default graphical interface?
A: I like the terminal, I find it's easier than describing where to click if I simply write a script and send it to you, less chance of screw ups too. You can indeed do this graphically but I don't wish to do this because I can get the whole thing done with one command faster for simple things like this than I can with the GUI (Graphical User Interface). Then I get to the issue of cross platform compatibility and every little tweak each user may have performed previous to to reading this, one command is simple and then I don't need to buy three different computers to do this.
This simple little trick is done in a few steps.
- Obtain a list of the domains you wish to reroute. This can be done by looking in your notes on which addresses you must know go to which server. You can have a network monitor running and find which domains have traffic spikes when an ad is served. The easiest way to find ad domains to block is to go online and download a few lists which might also have the addresses routed to 0.0.0.0 for you (I'll explain, I promise). If you only wish to block ads then download a current list like this, and this zip file containing an example hosts file. These lists are simply text files and can be copied into yours. there will be some overlap but I will come out with a utility to solve this and it won't cause too much trouble for you. My hosts file is here, named "hosts.txt".
- Locate your hosts file, it's a regular text file and it's in a system folder. Under Android this requires you to have a rooted device (modifying any system file needs admin privileges on any system), and you must pull the original file to your computer using ADB (Android Debug Bridge), modify it on your computer and then push the new file to your Android device. On GNU/Linux based operating systems the file will be located in the folder /etc and called "hosts", Linux users will be editing "/etc/hosts". Windows has the file located at "C:\windows\system32\drivers\etc\hosts" and Windows users will use this file path where I use "/etc/hosts". Mac users will need to use "/private/etc/hosts" where I type "/etc/hosts".
- Gain administrator privileges, if you own you system then you likely already have these, this is really only an issue where you have someone else managing your computer for you (like in a school). On Linux, make sure your account is of the "admin" type which will make you part of the "sudo" group which allows you to make system modifications like installing applications. Windows is similar, but most Windows machines will not have the same group architecture set up as Linux systems due to different underlying designs. Linux was and still is based on UNIX, UNIX is an old, tried and true design that simplified the lives of computer scientists when it came out and is still useful today (Mac is running on top of Darwin UNIX).
- Make a backup copy of the file somewhere in case of trouble you can't predict. the file is small so save as many copies as you want to different locations.
- Open the hosts file in a simple text editor, I use Gedit because I find it works well for this but a terminal based one like nano or vi will work for advanced or remote users. On Linux or Mac open a terminal, on Linux press Control and Alt and T usually skips all menus and pulls up a terminal window. Type "sudo gedit /etc/hosts" into the terminal, replace "gedit" with the command name of your favorite text editor (nano will work in a pinch), replace the "/etc/hosts" with your hosts file path if you are not on a Linux based machine. After you press Enter your computer will attempt open the file in the program you specified, it will succeed if you have the program installed. You may see something like what I have, you may be asked for your password so your computer can be sure it's really you typing and not a misbehaving program or a prankster.
My hosts file open with the terminal next to it. - Copy in the lists you have downloaded. Anything appearing after "#" on a line will be ignored by the system and you can type comments for human readability here without affecting the file's function. Every functional line starts with the address numbers followed by a space followed by the domain you want to target. As an example to block an ad servers, put "0.0.0.0 googleads4.g.doubleclick.net" on a line of its own. The 0.0.0.0 is an address that doesn't exist, the domain "googleads4.g.doubleclick.net" is told to point to the 0.0.0.0 which makes the ad never load from that domain.
- Don't remove anything you did not put in, I recommend putting your routing commands under the default ones.
- Once you are satisfied with the file, save it. You must now get your system to reload services using this file, one foolproof way to apply the changes system wide is to reboot your computer. Linux users can reload services manually and have the same result without needing to reboot.
- Give it a try. Try to load a site you blocked and find it unable to load, find ad boxes empty, find banners blank if not gone depending on how they are coded, and find your shortcuts working on all programs on your system. Success!
Saturday, April 8, 2017
New Android Application: Numberwiz
I want your input on anything you think could make this app better, send in a request by either commenting on this post or by sending me an email to either of the addresses I use to edit this blog: asificam1@gmail.com, or neuronmaker@gmail.com with the subject line "Numberwiz: suggestion".
Download the app here.
Or copy and paste this URL into your browser's address bar: https://goo.gl/IF9lfF
If you download this app, you have access to it before anyone on the play store does, think of it like being in an exclusive club of readers of my blog.
Tuesday, November 15, 2016
Factoring
The ELF executable should run on most 64bit UNIX compatible machines because I compiled it for 64 bit Linux. If you require a different executable to run the program, contact me and I'll attempt a cross compilation from my system to yours.
Please note that this was designed to be a command line program for simplicity and low overhead, therefore a graphical interface is not something I see myself building for this particular program. For those who don't know what "command line" is, it's a simple interface where you type on a terminal and the machine types back, we use these in the computer industry for a multitude of reasons including a backup interface for debugging graphical applications and for using a program from a remote location without the hassle if virtual network computing.
The executable can be found by clicking here.
Contact me via email for the C++ source code if you need it.
After downloading the file, I recommend that you check its hash sum to verify that you have the version that I published and that the file is intact. I will from now on be uploading hash sums for all of my executable files and packages to a separate page.
Latest Post
Most viewed
-
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 There was an update to the Steam client program that broke Steam on my particular Linux inst...
-
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 While programming micro-controller chips that will eventually control a semi-custom radio fo...