Question: is the oft-cited xkcd scheme [...] no longer good advice?

Response:
The XKCD password scheme remains effective because its security is based on generating memorable passwords from a large set of possibilities, not from being unknown.
On the contrary, Schneier has critiqued the XKCD password method, suggesting it's outdated advice, and promotes his own system as the superior choice.


Question: easy way to determine the virtualization technology of a linux machine?

Response:
The command 'dmidecode -s system-product-name' can be used across various virtualization platforms to identify the system product name.
For VirtualBox, in particular, you could use: lspci | grep -i virtualbox.
Desirable methods for detecting virtualization include using lshw, which provides details such as the computer product, vendor, and capabilities.
In addition to lshw, the virt-what script covers most virtualization detection cases and systemd-detect-virt can determine the type of virtualization technology used.
Furthermore, virtualization technology can also be identified by running lscpu, which reports the hypervisor vendor and virtualization type.


Question: how do i remove a directory and all its contents?

Response:
Use the command `rm -rf directoryname` to remove the directory and its contents.
If this command does not succeed, alternatives like `rm -R -f directoryname` or `rm --recursive -f directoryname` might work.
Should these commands still not yield the desired results, it may be necessary to either reinstall the `rm` command or to try a different shell.


Question: internet courtship: why would a hacker buy me poker chips?

Response:
It appears that there may be fraudulent activity occurring from your Facebook account, as suggested by a scenario where money is loaded into the account using a stolen credit card, then lost in poker to transfer to another account, and finally withdrawn with an anonymous prepaid card.
Another possibility is the occurrence of a confidence scam, wherein the victim is manipulated into making high-risk bets until they lose a significant amount of money to the scammer's associates or programmed bots at the poker table.
Money laundering is also considered a viable motive, especially in light of strict gambling laws in countries like Germany, where hackers might transfer money through a game on Facebook that has a payment agreement with PayPal, allowing for undetected and unregulated transactions.
Inadvertently, the hosting poker companies, such as Zynga in this context, may benefit from increased advertising and potentially gaining a new player if the victim gets engaged with the game, despite this not being the primary intention of the account hacking.


Question: why would you not permit q or z in passwords?

Response:
There is no security reason for the exclusion of the letters Q and Z from passwords; it's mainly due to legacy phone systems like rotary and touch-tone phones, that lacked these letters on their keypads.
The reason could also be administrative convenience in systems where multiple keyboard layouts are used, as certain letters are positioned differently on AZERTY and QWERTY keyboards.
Additionally, the infrequent occurrence of Q and Z in English might make them indicative of a randomly generated password in the eyes of an observer.


Question: silencing your disk is almost full notification

Response:
To address the persistent "Your disk is almost full" notifications on Sierra, you can enable the Optimize Storage feature, without selecting Store in iCloud.
You could also alter the GB threshold for what your computer considers "almost full".
Another approach is to disable the system daemon that triggers these notifications.
If you're being disturbed by notifications and want a broad solution, activating Do Not Disturb mode could be helpful, but it will suppress all notifications, not just the ones for disk space.


Question: how do i remove icloud photos from my ipad?

Response:
If you download apps and space is required, photos will automatically be removed, as they are securely backed up in iCloud.
However, you could also turn off the iCloud photo library on your device.
To do this, go to Setting and tap on your name, then click on iCloud, and then photos.
Finally, disable and tap "remove from this device".


Question: do imessages show up on text logs?

Response:
If your text messages were from Apple device to Apple device (using iMessage for both sides), it's not going to show up on the provider logs.

If your text messages were from your iPhone (or other Apple device) to a non-apple device or an Apple device without a network connection but still connected to the cell network, that does go through your cell provider, and they will have a log of those messages.


Question: ipv6 address space layout best practices

Response:
Best practice is to use a /127 for P2P links and /128 for loopbacks, and interfaces that are facing customers should be /64 if you want to use SLAAC.

The basic parameters are likely going to be that each subnet must be a /64 (dictated by IPv6), although you could start at /56 and try to project what will be used in the next several years and adjust up or down accordingly.

All subnets (other than P2P links) should be assigned as a /64 which gives you a ridiculous number of host addresses (a /48 would give you 65,536 /64 networks).

If you are already pretty happy with your IPv4 design, then doing an IPv6 overlay that mirrors things is probably a good option and eases the transition for everyone.

You should focus on aggregation rather than address space preservation and aggregate every subnet "living" in a POP under the same bigger prefix.


Question: do uninstalled apps take up space?

Response: Apps that have been uninstalled will have their internal storage deleted automatically; however, the files they create can still occupy space on your SD card.


Question: what is the difference between requirements and specifications?

Response:
Requirements document what is needed without detailing the method to achieve them, while specifications document how to achieve the requirements.
In other words, requirements are what your program should do, the specifications are how you plan to do it.
Additionally, requirements are based on the stakeholders' needs and specifications are more an inside, detailed, technical document.
Requirements must come first before a specification can be written.
A specification is a document full of requirements, plus other supporting and ancillary information.
Requirements dictate what a system or subsystem should or must do, while specifications define what a component, system, or subsystem actually is.
Finally, a requirement is considered an analysis artifact, and a specification is recognized as a design artifact.


Question: are (database) integration tests bad?

Response:
Integration tests are crucial for verifying that everything works together, which is harder to do but more meaningful in the end.
It's essential to utilize both unit and integration tests within the testing framework.
While integration tests are not inherently bad, heavy reliance on them may suggest that your individual components were not designed with testability in mind.
Database integration tests, in particular, are necessary to verify the functionality that interacts directly with databases.
Finally, integrated tests, in the right context, can be more useful than solely relying on unit tests, as they test the system in a way that reflects its operation in production.


Question: does xquartz work on mojave?

Response: Yes, the latest version of XQuartz works just fine on macOS Mojave machines with absolutely zero issues, but does not support Retina displays.


Question: support for multiple users on same device

Response:
An app known as Devide by Enterproid may help create separate and secure user profiles for work and personal use on a phone, but its compatibility with specific devices like the Xoom and its cost are uncertain as it's in an invite-only beta.
Another option is Titanium Backup, although it offers very limited support in managing multiple user data profiles.
SwitchMe, an app for root users, allows management of two profiles with its free version, and more can be managed by purchasing the key, and it uniquely logs users in and out of different Android installations.
The update to Android version 4.1.2 introduced the capability for multiple user profiles, which can be managed using command-line instructions, though root access is required.
Devices with Android 5.0 for phones and Android 4.2 for tablets have the multi-user feature, and Android 4.1 contains hidden multi-user functionality not available through the user interface.


Question: should i change the default ssh port on linux servers?

Response:
When bad actors scan the internet they tend to look at the default port of IP addresses to save time, which is the crux of the advice to change your default port, so putting SSH on a port other than 22 will make it less likely to be hit with a random scan, though if someone was targeting you then they could find the new SSH port.

Although changing the default SSH port doesn't gain you much from a security perspective, which depends on how up to speed you are going to be on patching your server and whether you have any kind of firewall in-front of the server, the cost of changing the port is very low, and the downsides are justified by the upsides.

There are other advantages, in that it stops failed login attempts on your server and in your logs.


Question: how to remove all empty directories in a subtree?

Response:
Appending `-p` to your `rmdir` command can remove directories with content in a single action.
Another technique is executing multiple rounds of directory removal, although its speed efficiency depends on various factors, including disk cache retention.
For a simple and compliant solution to directory removal, the command `find .-depth -type d -exec rmdir {} +` is advised.


Question: how long does it take to set up new iphone from icloud backup?

Response: It can take 1-4 hours per Gb to restore from an iCloud backup.


Question: why should i use a factory class instead of direct object construction?

Response:
Using factory classes along with interfaces promotes greater long-term flexibility within a project.
This approach enhances testability and ease of adaptation to changes without affecting dependent code.


Question: accidentally removed allowed vlans from cisco switch dot1q trunk

Response: Use add/remove/none to fix this issue.


Question: what is the format of a .xip file

Response:
XIP files serve a similar purpose as a zip file, while allowing for the addition and verification of a digital signature to ensure the content's integrity before being expanded.
XIP is essentially a variation of XAR archives utilizing gzip compression and includes metadata like checksums and timestamps.


Question: how does reverse ssh tunneling work?

Response:
SSH tunneling operates by using an existing SSH connection to transmit additional traffic.
This is achieved by opening new channels on that connection, which are designated for specific traffic directed to predetermined ports and IP addresses.
The process is identical for both forward and reverse tunneling and can be initiated from either the local or remote end of the SSH connection.
Moreover, you can establish a tunnel to a firewalled machine, which enables an SSH connection through the tunnel, effectively bypassing firewall restrictions.


Question: what is the difference between senior engineer and staff engineer?

Response: The difference between a senior engineer and a staff engineer depends on the company.


Question: my college is forcing me to install their ssl certificate. how to protect my privacy?

Response:
It's a good idea not to use their network for anything personal.
You can use their certificate, and use a VPN on top of that so you are not connecting to any site directly (provided they don't block it).
Alternatively, use a virtual machine with the certificate installed when you want to use their network.
If ssh is not filtered out, then you can use ssh to produce a SOCKS proxy running over an ssh tunnel.
You can also safely use a Chrome OS device, with a dedicated "school" Google account that you use solely for access to the school network.
Or just use your own internet; if you don't trust them, don't use their network.
Getting a cellular hotspot is another option, but don't try to bypass the firewall.
The best solution for protecting your privacy is probably to try your hardest to get this policy overturned.


Question: whats a good windows rdp client for mac?

Response:
You can use RDC (Remote Desktop Connection Client for Mac 2) as a free option that works on both Intel-based and PowerPC-based Macs.
Another free option is Chicken of the VNC, while a paid alternative is LogMeIn.
CoRD is a program that requires minimal setup and operates well without the need for modifying configuration files.
Moreover, since the El Capitan 10.11.4 update, CORD 0.5.7 for iMac no longer crashes, offering a more stable.
Indeed, CoRD, along with Jump Desktop, might be the best RDP Clients for Mac.
However, they also face stiff competition from the new Microsoft Remote Desktop 10 as the best RDP client for Mac.
Meanwhile, Thinomenon RDC supports features like audio, printing, scanning, and RemoteApp/RAIL, making it a top contender for the best RDP client.
Alternatively, iTAP supports NLA and offers a basic, but functional, user experience especially in full screen mode.
Royal TSX is a full-featured connections manager that supports a range of protocols including RDP, VNC, SSH, and Telnet.
Moreover, it really stands out for its features like SSH/Telnet connections with X forwarding.
Finally, Chrome Remote Desktop is a cross-platform solution that allows for remote assistance and access but lacks certain functionalities like rebooting without losing connection.


Question: how can i know whether i am a good programmer?

Response:
The question itself is subjective, but the fact that you are asking it is a good sign, indicating that you're probably not a bad programmer.
That is to say, a good programmer knows that she/he is not a great programmer.
You should, of course, also love to program and be passionate about it.
Added to this, the understanding that one must learn and constantly grow, coupled with the desire to improve is what makes a good programmer.
You should also be willing to spend the time and money to have the best tools and keep your skills updated, while never thinking you're good enough to stop.
Indeed, the very need to self-evaluate your own skills sets you apart from the rest.
As part of this you should investigate your work by finding out how many bugs it has per metric and how much of your code has to be recorded when new features need to be added.
All in all, you should be aiming for code that can complete a given task, on time, with the lowest number of code statements.
However, to actually get the answer to the question of how good a programmer you are, you're going to have to ask other people, credible ones at that.
To gain insights in your adequacy as a programmer, you should allow developers that you respect to look at your work and have people use your creations and see what they think about them.
Your co-workers will also be able to help with this.
Try submitting code to your peers and asking them for constructive feedback.
The maintainability of your code and how easy it is to modify are good metrics here, as is the people you hold in high esteem wanting to work on, or with, your code and whether they have issues modifying it.
You could also try competing in the TopCoder algorithm contest to test your skills.
In answering your question, you'll also want to consider your employment / career situation and history; the best programmers are never looking for work and may also have offers for work from previous employers to return.
It's also said that good programmers command a low salary and make little noise!
Also consider whether you are bringing new ideas to the company and whether you recognized for what you do at work.
Furthermore, do you have any influence and are people following your lead, or picking up your practices?
If so, it sounds like you are doing well.
You need to surround yourself with other good programmers and see if they have any issues with the code you write.
However, being a good programmer isn't just about coding, you need to be flexible and able to work well in groups, yet also work well by yourself.
You need to have a sound theoretic and mathematical background, along with the appropriate programming skills and IQ as well as the required aptitude, common sense and people skills.
Good programmers also have the motivation and creativity to extend their skills beyond what they do at work by having the interest to program in their free-time.
A good programmer is not afraid to try out new ideas and re-evaluate when progress isn't being made, while having the belief that what they are producing has some real value.


Question: whats the difference between $(stuff) and `stuff`?

Response:
The noticeable difference is that $() allows command nesting, which backticks do not support.
Also, $() should be used as it treats command interpretation consistently, interpreting everything within the parentheses as a command.
Moreover, $() is known to use more system resources, albeit marginally faster.
Practically, $() is more convenient for nesting multiple commands, making it easier to write and debug.


Question: how does ssl/tls work?

Response:
General SSL, and its successor TLS, is a protocol that operates directly on top of TCP, although there are also implementations for datagram based protocols such as UDP.
SSL's job is to detect alterations and ensure data confidentiality.
This enables protocols on higher layers, such as HTTP, to be left unchanged while still providing a secure connection.
Underneath the SSL layer, HTTP is identical to HTTPS.


Question: secure way to log in to a website on someone elses computer

Response:
Some people don't think there is a secure way to log into a website on a computer under someone else's control (which may have a key/click-logger installed), but others have suggestions, including: using a “have” factor of authentication, such as TOTP or a mobile app to approve logins; booting from a live USB stick using a linux distribution such as Tails live, Ubuntu, puppy linux or Kali linux; or logging on a device that is under your control, and transfer the session cookie you receive from that device to the untrusted computer, so your password is never entered on the untrusted computer, and cannot be recorded/captured, and the session cookie will be invalidated when you log out using the trusted device once you're done.

It is also suggested to use a different keyboard, if possible, to avoid devices that take the sounds of individual keys being pressed to decipher which key it was (and also to unplug any microphones connected to the computer, just in case).


Question: why doesnt http have post redirect?

Response:
A POST request has the potential to alter a resource that might be significant for users or others, and performing such actions usually requires the user's deliberate decision, as opposed to a GET request, which is designed for retrieval without serious consequences.
The differentiation between safe and non-safe methods was deliberately maintained by the HTTP designers, emphasizing the need for user awareness in the execution of these actions.


Question: how should i test randomness?

Response:
Run tests multiple times and visualize your data.
Analyzing the results of these tests will allow you to determine whether the algorithm performs satisfactorily by ensuring all potential outcomes are represented and that their frequency is properly distributed.


Question: my device is getting slow, apps start misbehaving/crashing. what can i do?

Response:
The typical elements responsible for a malfunctioning system may include the Application Cache and the Dalvik Cache.
One effective way to address a sluggish device may involve deleting unnecessary apps.
Disabling bloatware, or unnecessary system apps, can also contribute to device optimization.
Simply deleting apps was effective for one user, particularly when the app 'You Don't Know Jack' was identified as the source of the problems, leading to a notable speed enhancement.
Altering specific settings, such as disabling the fastboot feature in the power settings, then restarting the phone, can offer a simple fix to prevent more drastic measures.
Additionally, managing auto-updates, especially in the Samsung Galaxy Store, and handling automatic app processes via device maintenance or developer options can have a positive impact on your phone's performance.
It's advised to uninstall or reset to factory default those apps that seem unnecessary and are understood well enough to be removed safely.


Question: search for military installed backdoors on laptop

Response:
To verify the integrity of a laptop suspected of having been tampered with, it's crucial to check the weight distribution by verifying the precise weight of each component such as ICs and PCB.
It's also suggested to examine the power usage over time to detect backdoors, as they often consume power, though this is not a completely reliable method due to the minimal power usage of modern integrated circuits.
Additionally, one can use X-ray inspection to view the internals of a multi-layer printed circuit board, though this method is intensive and requires specialized equipment and skills.
Given that searching for, tampering with, or removing computer or monitoring devices can be perceived as a criminal act, and any overt action can appear suspicious, a more subtle approach is advised.
Detecting hardware changes is difficult, so it's more likely that a device gets compromised through software installation if it was only taken for a short period.
To ascertain if your device's network activity is suspect, you should connect it to a router that records traffic and validate IPs with registries such as ARIN.
However, it's also wise to reflect on your risk profile and whether it's practical to assume that a sophisticated, expensive hardware implant has been used against you.
A diligent approach to checking for a backdoor involves monitoring network chatter through your router.


Question: how to use watch command with a piped chain of commands/programs

Response: When forming command lines that involve parsing output, it's useful to include a mix of single and double quotations.


Question: is there any reason to disable paste password on login?

Response:
Disabling pasting into password fields is not supported for several reasons stated in different contexts.
The concept of the "Cobra effect" is introduced, where the solution of disabling pasting can worsen the problem by discouraging the use of strong, complex passwords that are often used in conjunction with password managers.
From a product management perspective, it is acknowledged that while pasting passwords could be considered for disabling under certain security frameworks, it is generally not recommended for sites that rely solely on username and password authentication.


Question: how to connect iphone to mac with broken screen?

Response:
If you own an Apple TV, you could use airplay mirroring to see exactly what happens on your iPhone, or you could try reflector, but both require you to enable airplay blindly.

Alternatively, use QuickTime Player on your Mac, connecting the lightning port from your iPhone to the USB of your computer.


Question: are https sites safe on public wifi?

Response:
The encryption is fully suitable for insecure lines such as public WiFi because it originates from trusted root SSL certificate authorities like Verisign and Thawte.
Furthermore, HTTPS is secure when used over public hotspots because during the setup of TLS, only the public key and encrypted messages are transmitted, which are additionally signed by root certificates.
Moreover, SSL/TLS is fundamentally secure, preventing attackers from deciphering keys or impersonating a user's encrypted traffic, courtesy of sophisticated key exchange protocols.
However, the security of SSL/TLS over public WiFi depends on various conditions, such as if users initiate their browsing in an encrypted manner and whether they heed browser warnings about certificate security.
Additionally, to ensure safe browsing, extensions like HTTPS Everywhere can ensure the constant use of secure connections.


Question: why use swap when there is more than enough free space in ram?

Response:
In most cases, it is considered normal for Linux systems to employ swap space, moving seldom-used memory pages there to optimize performance.
The kernel swaps these pages before RAM is filled to improve system efficiency and keep often-accessed files readily available.
This process is beneficial, as it allows the freeing up of RAM for more immediate needs, and can speed up operations.
By offloading less essential program pages,  paged data, and unused memory to swap space, more RAM is made available for cache and actively used programs, thereby speeding up AM memory allocation.
Additionally, swap supports the hibernation feature, which is particularly advantageous for laptops and energy conservation.
Moreover, swapping is an integral part of ensuring smooth kernel operation in a multi-process environment.
Swapping out memory can be a time-consuming process, however, particularly because writing to disk is much slower than accessing solid-state RAM.
However, Linux systems have evolved to better handle memory allocation and reduce fragmentation, notably from kernel version 2.6 and onwards, thus enhancing performance and minimizing the occurrence of memory-related issues.


Question: how can i change a file or folder icon using the terminal

Response:
You'll need the Developer Tools installed, and then you might apply the graphic in icon.png to file.ext using a series of commands that start with making the image its own icon and end with cleaning up unnecessary resource files.
When changing a folder's icon, instead of pointing Rez -append to the folder, you should target a special Icon\r file.
If the Icon\r file doesn't exist, it's created on the fly and should be hidden to prevent accidental deletion.
You can also use 'setfileicon', a utility by Damien Bobillot, to set icons for files or directories, for which the source code is available, and the binary can be made executable after downloading.
Alternatively, MacRuby can change icons with a single line of code after installing it from its official site.
Interestingly, Python code appears to be the best solution, offering various benefits over Apple's tools, such as not being limited by output file resolution, input file format, or installation permissions.
For newer macOS versions (10.14 and above), an error occurs when using 'sips -i'; hence, a workaround by converting the image to an ICNS format and appending the resource to the desired file is necessary.
Lastly, AppleScript can also customize icons by accessing Objective-C code through the AppKit framework despite the script's challenging readability.


Question: how do i know how reusable my methods should be?

Response:
According to one opinion, the overwhelming problem of software design is trying to account for an uncertain future.
A strategy that is indefinitely applicable is good coding practice.
Experience, domain knowledge, and code reviews are essential tools for improving your software engineering skills.
Designing software should focus on design comprehensibility and flexibility to better serve end users, rather than on the potential for code reusability.
Regarding reusability, "obvious" parameters can be put in there, but you shouldn't start trying to predict the future.
Ultimately, code should be as reusable as needed, based on the demands of the project and the judgement of the developer.


Question: what would one need to do in order to hijack a satellite?

Response:
With sufficient power from a satellite dish on the ground, an orbiting satellite's signal can be blocked, where you’re basically jamming the uplink and/or downlink (something like a DoS attack).

Another attack which can be performed is an orbital positioning attack, where you feed your target with false responses and satellite is “confused” and “lost” (it doesn't know its location).

A more expensive option is to do as in Ian Fleming's Moonraker: go up there and steal the thing.


Question: why do dynamic languages make it more difficult to maintain large codebases?

Response:
Maintaining large codebases becomes more challenging in dynamic languages due to the deliberate abandonment of some of the tools that programming languages offer.
The absence of explicit static types, which serve as universally understood and guaranteed correct documentation, further complicates the readability and understanding of dynamic code.
There is also a strong correlation between a language being dynamically typed and a language also lacking all the other facilities, that make lowering the cost of maintaining a large codebase easier, and this is the key reason why it is more difficult to maintain a large codebase in a dynamic language.


Question: why are z and y switched?

Response:
It seems that you have set the wrong language for your keyboard.
It might be German, which employs a QWERTZ layout, as opposed to QWERTY.


Question: how can i see which switchports are not in use?

Response:
You could scrape the output (or grab it with SNMP) and use standard UNIX tools to parse it.

Recommended commands to use are: sh int | i (FastEthernet|0 packets input);  sh int | inc line protocol is|Last input; show interfaces status; sh int | i (Ethernet| 0 packets input); sh int | i ( 0 packets input)|proto|Desc; or sh int des | ex up.


Question: why is math.random() not designed to be cryptographically secure?

Response:
A major reason is that an alternative to Math.random() exists which can be used by those requiring strong cryptography, allowing others to save both time and power.
The alternative to Math.random(), is window.crypto.getRandomValues(typedArray), which gives developers the choice to use the best tool for their specific needs.
Math.random() is not cryptographically secure as it's not typically necessary, and embedding a cryptographically secure algorithm into a spec without good reason can add unwanted complexity.


Question: how does the authentication in the new uk £1 coin work?

Response:
The authentication in the new UK £1 coin works through a plating system called iSIS, which detects the material of the coins to determine their authenticity cheaply and accurately.
This system involves micro-tagging embedded within the currency and utilizes a special type of particle added to the coin as an additive.
The iSIS technology can be integrated with aRMour technology to add a 25-micron coating on coin blanks, allowing for detection at both simple point-of-sale sites and advanced banking systems.


Question: what do the icons mean on google hangouts?

Response:
If there's a computer icon next to their icon, it means they're accessing Hangouts from a PC or Chromebook.
If it's a phone icon, it indicates they are using their phone.
Also, the location of their icon correlates with the most recent message they've read.
Finally, if the icon is dim, it means they are not looking at your message.


Question: where are whatsapp backups stored on icloud?

Response: In a hidden folder in the iCloud Drive, which you can find by typing a search term in Terminal.


Question: why can i log in to my facebook account with a misspelled email/password?

Response:
Facebook tries to enhance user experience by attempting to "correct" a few common login mistakes such as inserting a random character before or after, capitalizing or not capitalizing the first character, or mistakenly using caps lock.
Furthermore, the system automatically corrects certain typos or variations in your email address to improve ease of use as Facebook might have decided that usability is of utter importance.
Instead of granting users several login attempts to manually fix common misspellings, the site tries to fix those misspellings automatically.
This measure also heightens security because it reduces the number of login attempts needed, allowing for stricter rate limiting against attackers.


Question: how do you maximize windows?

Response:
For window management, the Cinch app from Irradiated Software is an inexpensive solution that maximizes windows by dragging the title bar to the top of the screen.
RightZoom is another option that works like the Windows maximize feature.
Manually resizing a window to fit the screen can be done by dragging the window to the top-left edge and resizing from the bottom-right corner.
In Safari, Mail, and Terminal, command-clicking the + button maximizes the window.
On Yosemite, double-clicking the window top bar or option-clicking the green dot maximizes windows, while older OS X versions require a shift-click on the green (+).
BetterTouchTool allows customization of window maximization gestures on multitouch pads.
Mac OS X lacks a specific maximize button, recommending manual resizing or utilizing the green plus button to fit content.
Custom scripts can be assigned to the keyboard shortcut ⌥⌘M for maximizing, but it might not work with all windows or displays.
Also, Moom offers configurable keyboard-based window management, allowing quick window resizing and movement.
Meanwhile, DoublePane, available for $4.99, and Spectacle, which is free on MAS, provide maximization functions through keyboard shortcuts.
Specifically, Spectacle uses the shortcut ⌘+F to maximize windows.
OS X versions 10.7 and later feature a full-screen icon for entering full-screen mode.
A built-in OS method for maximizing involves Alt-dragging a window corner to the corresponding screen corner.  Holding the Alt button and double-clicking a window corner enlarges the window optimally on macOS Sierra.
You can fill the screen with a window by option double-clicking any side with the resize arrow visible, without entering full screen mode.


Question: what does it look like when you block someone on viber?

Response:
When you block someone on Viber, that person will continue to see your profile information if you were saved in their contact list, but they will not be able to see any changes you make to your profile information afterwards.
If you were not in their contact list when you blocked them, they will not have access to your profile information at all.
Additionally, a blocked contact will not be able to see your status.


Question: should i let my childs school have access to my kids personal laptop?

Response:
It makes sense to give them admin access to install things but it's better to revoke it once this is done.
In general, the school security precautions seem reasonable.
However, many parents recommend saying no to this because you have no way to tell what they have changed.
Ask for the keys to Office and ignore their requests to install certificates; tell your child to never give them the laptop.
The school should work with what the children have or hand out school laptops.
Others advise being flexible and prepared to compromise.
Maybe ask for a list of the required software and install it yourself.
Another option is to ask about minimum specs and buy your child a burner laptop to be used only for school (make sure the child knows this too), or use a virtual machine.
You could give them a Chromebook for school, and lock it down with parental controls.
The school could provide a Lenovo 100e (Windows 10 - S-Mode) or a Chromebook (Chrome OS) for under $200.


Question: icloud has wrong email address?

Response: If you need to correct an incorrectly setup account, you must create a new one.


Question: tmux vs. gnu screen

Response:
Tmux is relatively new compared to GNU Screen.
It is BSD licensed, offering a different licensing option than the GNU GPL of Screen.
Also, tmux is ncurses based, while screen does not draw additional elements.
If someone use terminal emulator that supports scrolling (s)he will get scrolling with screen but not with tmux (at least in default configuration), in addition to searching and similar features.
Tmux introduces a variety of features which can enhance the user experience if configured properly.
One significant drawback of Screen is that it lacks active development, with many unassigned bugs, while tmux has far fewer open issues and receives more active support.


Question: is there anything preventing the nsa from becoming a root ca?

Response:
The U.S. government already has a root Certificate Authority (CA) that is trusted by default, meaning any SSL site's authenticity you check can be traced back to the U.S. government.
Besides government Root CAs already in your trust stores, the NSA, being a spy agency, might have access to the private keys of various CAs, potentially even for false flag operations.
The NSA, utilizing legal tools like the USA PATRIOT Act, can compel major U.S. CAs to surrender their private root keys under the guise of "national security," and do so secretly under penalty of law, effectively allowing the NSA to impersonate any of these CAs at will.


Question: installation of macos high sierra update 10.13.4 failed; how do i recover without losing data?

Response:
Boot to safe mode by holding shift during power up and restart normally.
If you encounter problems with macOS updates, you can use Recovery Mode and restore from a Time Machine backup to resolve the issue.
Running First Aid from the Disk Utility when the laptop is in a crashed state can also solve issues without losing data.  Alternatively, booting into Recovery Mode using Command + R and selecting Reinstall macOS High Sierra can fix problems while keeping your existing data intact.
In some cases, reinstalling macOS High Sierra using Command + R at boot time can resolve an Installer Log error and update the system to the latest version without wiping your drive.
Setting your startup disk to "Macintosh HD" in Recovery Mode and restarting can also bypass error messages.
Sometimes, mounting Macintosh HD in Recovery mode, checking it with First Aid, and restarting the computer can solve the update problem.
Another method that may work is choosing Macintosh HD as the startup disk at the installation log and then restarting.
Holding down the Option key at startup and selecting the original partition can also allow you to boot into your system and update from there.
If standard procedures don't work, entering Recovery Mode and using previous backups, despite the loss of recent changes, could be the final workaround.


Question: what is 1 &2 in unix?

Response:
The numbers 1 and 2 are file descriptors.
1 refers to 'stdout' and 2 refers to 'stderr'.
'1 &2' means that stdout and stderr are being swapped.


Question: is a zip code considered pii?

Response:
On one hand, some argue that by itself, a zip code cannot be classified as PII, emphasizing its standalone nature.
Conversely, others assert that a zip code is, indeed, personally identifying information.
Notably, within the context of regulations such as HIPAA, a zip code is explicitly recognized as a HIPAA/Safe Harbor identifier, acknowledging its significance in certain privacy frameworks.


Question: can i use gpl software in a commercial application

Response:
You may copy, distribute, and modify the software as long as you track changes/dates of in-source files and keep modifications under GPL.
Additionally, you can distribute your application using a GPL library commercially, but you must also provide the source code.


Question: how to get only files created after a date with ls?

Response:
Use: -mtime +1 instead of -mtime -1.

Alternatively, use: ls -ltr | grep "`date | awk '{print $2" "$3}'`".


Question: why are ethernet standards written in the form of 10/100/1000? why not just 1000?

Response:
They include this because not all ports are able to run at multiple speeds or certain speeds.
A single UTP wire can do 10, 100, or 1000 million bits per second, hence the wires and interfaces are labeled 10/100/1000.


Question: is 000 a valid cvv code?

Response: 000 is perfectly valid, and you can't be sure if a credit card's codes are valid until you try.


Question: is tethering bad for your phone?

Response:
There is no substantial evidence to suggest that tethering is detrimental to device hardware.
Tethering should be a manageable task for any Android device that supports it and shouldn't cause harm to the hardware, with the possible exception of some battery wear from overheating.


Question: how can i download an older version of os x/macos?

Response:
It is advised to first check Apple's own page on "How to get old versions of macOS" for the most recent information.
 If you have ever previously installed any OS X version, it will still be available to you from your Purchase History on the App Store.
One user recommends command line tools for performing the downloads as it's straightforward and scriptable.
The Mac administrators community has open sourced a tool to help download OS installers using a python script.
There is also a a script that can be used to download the Mojave installer without being signed in to the App Store: installinstallmacos.py, if you need several versions.
Finally, macOS 10.15 Catalina has a new feature in the ‘softwareupdate’ tool to download older versions of macOS: --fetch-full-installer Install the latest macOS Installer --full-installer-version.


Question: how can i keep my mac awake and locked?

Response:
To prevent your Mac from entering sleep mode, you might use KeepingYouAwake, a free utility that is compatible with macOS version 10.10 and newer.
Alternatively, you can use the free app Amphetamine and set it to prevent sleep indefinitely.
If you prefer not to use external utilities, Apple's built-in command line utilities such as `pmset` can also achieve this by disabling sleep mode entirely or for a specified duration.


Question: how to insert text after a certain string in a file?

Response:
In scripting with sed, it is possible to insert text after a pattern using the "'/pattern/a some text here' filename" command.
Awk can also do this using "'1;/PATTERN/{ print "add one line"; print "\\and one more"}' infile", allowing inclusion of escape sequences for characters that can't be used literally.


Question: fix terminal after displaying a binary file

Response:
To address terminal malfunctions when files meant not to be viewed are opened, various resetting commands can be utilized.
Different users have had success with the following commands: hitting "Control + C" a couple of times and then typing "reset" and then hitting "return", trying `alias fix='echo -e "\033c"'`, using `alias fix='reset; stty sane; tput rs1; clear; echo -e "\033c"'` in .bashrc and then typing in ` (ctl-c, ctl-c, ctl-c) fix `.
For tmux users experiencing issues that persist within tmux panes, commands like `ctrl-B XXX tmux send-key -R -t PPP` might be required to reset the pane.
For some, merely running "reset" or exiting and re-entering tmux resolves the problem.
Lastly, another user used "echo Ctrl+V" followed by "Ctrl+O" when other approaches failed.


Question: what is the difference between null and zero?

Response:
Zero is a numeric value that can be utilized in calculations and operations.
On the other hand, null is not a value; it is a unicorn and represents a complete absence or lack thereof.
In the realm of measurable quantity, zero embodies a specific numerical value, while null signifies non-existence, nothingness, or a void.


Question: use existing contact for me in ice cream sandwich

Response:
After installing the Google+ app, your phone can sync the "Me" contact with your full Google+ profile, which was specifically noted to work with a Galaxy Nexus on ICS 4.0.4.
On the other hand, it appears that merging a normal contact with the "Me" contact directly is not possible.
The suggested solution is to install the Google+ app and adjust its settings to sync the contacts, after which opening your contacts should show your contact as "my profile".


Question: what is mail, and how is it navigated?

Response:
The "mail" command is described as an intelligent mail processing system that is especially useful when writing shell scripts or cron jobs.
The "mail" program should ideally align with the POSIX/SUS's mailx program, but the user may need to navigate any differences that arise.


Question: is the aes iv secret?

Response:
An initialization vector (IV) usually does not have to be kept secret, but should not be reused with the same key to maintain security.
When storing an IV, there is no need to encrypt it, provided it is random; only the key requires secure storage.
For certain encryption modes like CBC, the IV must be unpredictable to thwart active attacks.


Question: how can i delete all lines in a file using vi?

Response:
Navigate to the first line using "1G" and then delete all lines up to the last one with "dG".
Alternatively, in the vi editor, you can use ":1,$d" to delete from the first to the last line.
If preferred, the shorthand ":%d" can be employed in vi, which means to delete all lines.
Another method is to issue "gg" to go to the top of the file before performing "dG" to delete every line until the file's end.
A similar approach that selects everything in the file is to use "ggVG" and then press "d" or "x" to delete everything.
For a simple route, "ggdG" is a five-key command in vi that accomplishes the same result.
One could also utilize " :!:>%" in vi to execute a shell command to truncate the current file.
A non-vi command to achieve file truncation is "truncate -s 0 file".
Lastly, typing "and %d" within vi also clears the file's content.


Question: how do i get people to stop bikeshedding (focusing on trivialities)?

Response:
It's important to clearly identify that the team sessions are for discussing and troubleshooting issues related to the content only.
Avoid allowing extended discussions during presentations, as they're not meant for review but rather for understanding the system.
Setting correct expectations and being open and transparent about goals is also vital, starting off the discussions with the overall view.
To manage topics effectively during lessons, it's helpful to clearly explain what is considered off-topic and to table those questions for later discussion.
In some organizations, you many never be able to achieve this, however, emphasizing the direct impact of participants' comprehension and contribution on their personal advancement within the company might be necessary to maintain focus on the task at hand.
When educating programmers, explaining the goals of the session upfront can help keep the meeting on track and prevent derailment into less relevant topics.
By breaking the codebase into units and having learners work in pairs to explain it to each other, you can enhance their understanding and engagement.
It's often beneficial to start with teaching the overall design of the codebase before diving into specific examples, including the business motivation behind the design choices.


Question: what are the differences between the security onion and kali distributions?

Response: In the realm of IT operations and cybersecurity, Kali Linux is recognized as an offensive security distribution tailored for Penetration Testing and research, while Security Onion is designed for Network Security Monitoring as a defensive tool.


Question: igmp do i need it?

Response:
In the absence of an mrouter within the network, the configuration of one or more IGMP queriers is required.
This will keep forwarding information up-to-date, thus preventing traffic from being dropped or flooding.


Question: how to find the port a device is connected to, based on ip, on a cisco catalyst switch

Response:
The answer depends on whether the switch is a Layer 2 or a Layer 3 switch.
On a layer 3 switch, the port can be found by using a few simple commands on the device.
However on a layer 2 switch, you have to log into both the switch and whatever device is doing the routing to locate the port.
Type Interface Internet 172.20.1.100 0 28cf.da1d.1b05 ARPA Vlan10, log in to the switch and the port should be listed (Dynamic 10 FastEthernet0/1/1).
Another method is to just telnet yourself into the switch, then unplug the device, then replug it.
The switch will write a message which port was down and then up.


Question: what is the difference between computer science and programming?

Response:
Computer science is the theoretical foundation of programming, representing the study of what computers can do; in contrast, programming is the practical implementation of computer science concepts, akin to the carpentry aspect, while computer science plays the role of architecture and design.
If an activity necessitates a computer to determine its functionality, it falls under the realm of programming.


Question: is basic-auth secure if done over https?

Response:
The answer is variable as it depends entirely on how secure it needs to be and it may be better to hash the password with a nonce, or better yet, use a claims model that passes the authority over to a trusted third party.
The HTTPS protects the password in transit but this may not be adequate depending on what your site and how secure it needs to be.
It is acknowledged that many large and popular sites use basic or forms-based authentication over HTTPS, even though it may not completely align with best security practices.
Basic Auth over HTTPS is considered good, but not foolproof, as potentials for decrypted interactions exist, particularly with corporate HTTPS proxies.
However, as long as the password is a good one, then this is what the SSL was designed for and will work fine, and as long as you don't ignore any TLS warnings from the browser you should be good.
Using basic auth + HTTPS is generally not less or more secure than a form-based authentication method over HTTPS.
It's important to consider the limitations of mobile devices when using basic auth, as they may not allow certificate validation before entering credentials, potentially posing a risk when an attacker uses a valid certificate.
Finally, while Basic Auth over TLS works well if you can live with a few limitations; for more robust needs, consider additional measures such as signature schemes or TLS Client Auth.


Question: is every language written in c?

Response:
Languages have existed before C, and many have been developed independently of it.
In addition to C, other languages like OCaml, Haskell, and Lisp dialects are used to create new languages.


Question: how to distinguish nexus 7 (2012) and nexus 7 (2013)

Response: The most noticeable physical differences between the 2013 and 2012 models are the different orientations of the "Nexus" logo and the presence of a camera on the back and a notification LED on the front for the 2013 model, which the 2012 model does not have.


Question: how do you detach the 2nd screen from within another screen?

Response:
Use the command: ctrl-a a d.

So, if you have a screen s3 within another screen s2 within another screen s1, you can execute a command ctrl-a d in the screen: s1 by doing, ctrl-a d; s2 by doing, ctrl-a a d; s3 by doing, ctrl-a a a d ...


Question: are `break` and `continue` bad programming practices?

Response:
It's recognized that using constructions like 'break' or 'continue' is not inherently poor practice.
The predictability and understandability of the code's behavior is a point of contention; unexpected breaks within loops can make understanding the loop's flow challenging.
Employing these statements at the beginning of code blocks as a form of precondition is deemed good while using them amidst code can act as 'hidden traps,' thus making it bad.
The appropriateness of 'break' and 'continue' depends on whether their use enhances the understandability and efficiency of the code.
Using break and continue frequently makes code hard to follow, and if replacing them makes the code even harder to follow, then that's a bad change.
There are valid contexts for using break and continue statements, especially when alternative structured techniques are insufficient.
However, they are bad because they produce methods with high cyclomatic complexity.
Such methods are difficult to read and difficult to test.


Question: should i return from a function early or use an if statement?

Response:
It depends on the matter at hand, but either method can be considered valid.
For example, you could go ahead and write: if(someCondition) { SomeFunction(); }.
Doing the pass/fail conditions checks at the beginning allows for any failures to be dealt with at the top which also helps with the code's readability.
Moreover, the early return approach is advised against in order to maintain the code's aesthetics, which can deteriorate, the more complex the code gets using this approach.
However, for some, an early return can be more appropriate in terms of aesthetics if there are multiple conditions to check.
Also, early return can be a good approach to make the code easier to follow, especially if there are many 'if' statements, while some use early returns in order to avoid multiple level nesting in functions.
On the other hand, some consider an early return approach bad programming practice in that its use is a sign of weak code.


Question: why is my phone texting off email?

Response:
Your iPhone uses the Messages app to send messages to other devices and determines the most efficient way to deliver them through either Apple's network or the traditional SMS service, depending on whether the recipient has an Apple device registered with their servers.
Messages are not transmitted via email; instead, your email (which is your Apple ID) is used as an identifier to allow messages to be sent to your devices without phone service, such as iPads, iPod Touch, and Macs.


Question: is there a tool to get the lines in one file that are not in another?

Response:
The standard grep tool for searching files for text strings can be used to subtract all the lines in one file from another.

If the files you are comparing are sorted text files, then the GNU tool called comm may perform the filtering you are after.

You could also consider vimdiff, which highlights the differences between files in a vim editor.

The grep and comm (with sort) methods take a long time on large files, but there are awk methods for extracting lines unique to one of two files.


Question: how can i calculate the size of a directory?

Response:
The command: "du -s directory_name" allows you to check the total size of a specified directory without listing the size of each subdirectory, while "du -sh directory_name" provides the same output in a human-readable format.
Alternatively, you can use the "ls -ldh" command which offers a long listing of directory information (`ls -ldh: ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc -l is `) and presents size in a human-readable format.
For a grand total of a directory size, use command: "du -csh".
For scripts that calculate size, use the command "file-size.sh" from the awk Velour library to sum up the sizes of files.
Lastly, the command: "du -hd1" will list the sizes of all directories at the first level of the given directory in a human-readable format.


Question: what is the difference between .bash_profile and .bashrc?

Response: .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.


Question: how can i execute `date` inside of a cron tab job?

Response:
Commands can be placed in a shell file for execution by cron.
For instance, to run a script at 5 am on Wednesdays, you could set a cron job with "0 5 * * 3 /data/script.sh", so the command would be: '0 5 * * 3 /data/script.sh > /data/script_`date +\%y\%m\%d`.log 2>&1'.
Additionally, it is advisable to use the $() syntax for executing the `date` command and formatting the datetime output to UTC, ensuring to escape the % character and directing both stdout and stderr to a log file.


Question: why do network taps have four ports?

Response: Hardware network taps provide one output port in each direction to ensure that traffic can be replicated at line rate.


Question: can anyone recommend an app for creating flowcharts and diagrams?

Response: Some recommended options are: OmniGraffle, iPlotz, Xmind, Google Docs, GraphViz, Shapes, NeoOffice's drawing tool, diagrams.net, Diagrammix, IHMC CmapTools, Inspiration, Gliffy, Dia, Lucid Chart for Google Apps, yEd, Delinieato, Apple's Keynote, Creately, Pencil, Lovely Charts, ProcessOn, Describio, ConceptDraw, and MyDraw.


Question: why do i need a tty to run sudo if i can sudo without a password?

Response: By default, SUDO is configured to require a TTY, meaning it should be run from a login shell.


Question: why is naming a tables primary key column id considered bad practice?

Response:
Naming a foreign key column simply "Id" can lead to confusion, especially when a table links to another table with a foreign key, hence, it is better to name it more descriptively, such as "TableId".
Semantic significance in column naming is crucial, and generic names like "ID" can become problematic in this context.
Prefixing common column names with the TableName is a good practice as it removes ambiguity and simplifies the querying process.
However, using the natural join becomes difficult and confusing if primary keys across tables are all named "ID".
Some developers argue that including the table name in each column name can be redundant and tedious to both write and read.
Nevertheless, maintaining consistency and reducing ambiguity in naming conventions benefit maintenance programmers, providing clarity especially when foreign key relationships may not be explicitly enforced.
If you do a lot of reporting queries you always have to alias the columns if you want to see both.
Using generic "id" also adds unnecessary work during complex query writing and can lead to code errors and time wastage.
Furthermore, differing primary key and foreign key names can prevent the use of certain third-party database tools.
Lastly, utilizing natural unique information within a table as the primary key, rather than a superfluous "id", can strengthen relational integrity.
And that's why using id is bad practice: id is often not information, just an autoincrease.


Question: is it bad practice to use your real name online?

Response:
Using your real name does not usually cause any harm to you, but the information you share is the real key.
Obviously you are more vulnerable if you use your real name, and some people advise against it.
You must carefully balance your public and private personas.
It really comes down to personal comfort with your online and offline worlds colliding.
Take into account that using your real name might be difficult if your name is common, and there are also issues surrounding gender.
Sometimes it is important to use your real name because you want to establish a public identity now or for the future.
It is a good idea to search for what others have said about you using your name.
Behave in the same way on the internet as you would in the street outside your house.
Remember that being paranoid doesn't mean you don't have enemies.


Question: copy text from one tmux pane to another (using vim)

Response:
In the context of copying and pasting text, it's possible to use the system clipboard with "*y and "*p rather than the normal (y) and (p) commands.
When working directly in Vim, `vim copy paste` is usually preferable to avoid issues like copying irrelevant text such as line numbers or marks in the gutter.
Another approach is `Enter Copy Mode: <prefix>+[ Start copy: <Space> Copy text: <Enter> Paste text: <prefix>+]` is an effective method.
In Tmux, using keyboard shortcuts like Ctrl+Alt+C and Ctrl+Alt+V will also work.


Question: gitlab account hacked and repo wiped

Response:
If something goes wrong with your GitLab account, you can use git reflog in a clone and check out the last commit that was made before the problem occurred.
In response to a compromised git repository, you should change all the compromised logins and passwords and revoke any unknown sessions.
In a hacking incident, you can try to revert the last commit.
Additionally, you can utilize a local repository to force push the correct code back to the server.
If your build server has completed recent tasks, it may provide the information needed to recover the most recent state of the master branch.
For better security, set up SSH for communicating with GitLab rather than using a username and password combination.
It's also recommended to ensure your personal computer hasn't been compromised and to change passwords for all your online accounts as a precaution.


Question: how can i prevent an ssh session from hanging in os x terminal?

Response:
For enhanced SSH connectivity experiences, the mosh project can be used to manage network instability, such as network losses or machine sleep, and it will reestablish the connection once the network is available again.
To configure system-wide SSH settings, you can add the line 'ServerAliveInterval 10' to your /etc/ssh/ssh_config file, which sends keep-alive packets every 10 seconds.
Alternatively, setting 'ServerAliveInterval 60' along with 'TCPKeepAlive yes' in the same file can help maintaining the connection.
For Mac users, autossh can be installed to automatically reconnect SSH sessions after sleep or Wi-Fi disruptions, and it's possible to set up SSH to automatically connect upon login.


Question: how to suspend and bring a background process to foreground

Response:
Interactive Ctrl+z will suspend the currently foregrounded program, bg will background the most recently suspended program, and fg will foreground the most recently suspended program.
To suspend the process running in the background, use: `kill -STOP %job_id`; the SIGSTOP signal stops (pauses) a process in essentially the same way Ctrl+Z does.


Question: how to become a faster programmer?

Response:
Engage in consistent practice and utilize productivity tools suitable for your development environment, such as Resharper for .NET.
Refrain from excessively refining your code; focus on functionality as businesses prioritize working solutions.
Sketch your designs on paper and discuss them with peers before coding, which fosters clarity and peer feedback.
Reuse and repurpose quality code from previous projects whenever possible.
Dedicate yourself to practice and hard work, as familiarity with your tools can increase speed and creativity.
Consider engaging with exercises like TopCoder's algorithm challenges for faster design and programming.
Cultivate deep knowledge of your editor and IDE to leverage their full feature set efficiently, adopting keyboard shortcuts to minimize the use of the mouse.
Adopt a straightforward approach to test-driven development by following the "red, green, refactor" pattern, which involves writing a failing test, implementing just enough code to pass the test, and then refining the code without being hindered by tests temporarily.
Strive to implement solutions correctly on your first attempt to save time on revisions.
Consider evolutionary prototyping to quickly produce functional prototypes that meet immediate needs, which also helps streamline documentation efforts.
Simplify your development tasks as much as possible by focusing on the essential requirements rather than perceived needs or over-engineering solutions.
Enhance your knowledge by reading helpful resources like Neal Ford's "The Productive Programmer" and thoroughly familiarize yourself with your tools' documentation.
Identify and eliminate unproductive activities in your workflow, focusing only on productive tasks.
Learn your runtime API thoroughly to increase coding efficiency and produce more accurate project time estimates.
Integrate build and deployment scripts into your process to save time and focus and ensure you have robust version control to help manage changes effectively.
For practical tooling and faster development, start using Resharper and gain comprehensive knowledge about your IDE.
Improve your touch-typing speed and work with offline documentation to minimize distractions.
Know your technology intimately, implement only what's necessary, and maintain simplicity in your solutions.
Learn to get into "The Zone" for peak productivity and recognize when you're not in this optimal state.
After completing projects, conduct postmortem analysis to understand where time was spent and identify opportunities for improvement.
Break down work into small, time-boxed tasks with clear scopes, effectively harnessing tools like Stack Overflow to enhance efficiency.
Utilize frameworks to accelerate development without starting from scratch.
Apply the "Don't Repeat Yourself" (DRY) principle, organize shortcuts for easy access to commonly used tools, and focus on one task at a time to increase concentration.
Identify your specific time bottlenecks, avoid excessive work beyond requirements, and ensure you have chunks of uninterrupted thinking time.
Continue to learn about design patterns and test-driven development, which can reduce the occurrence of bugs.
Utilize tools like ReSharper for code quality and speed.
Remap your IDE keyboard shortcuts for efficiency, and use cursor navigation skills to expedite the coding process.
Establish benchmarks for how long tasks take and compare yourself to peers, understanding corporate culture expectations around work hours.
Write less code using a code generator or a preprocessor, focusing on performance tuning to reduce code bloat and increase efficiency, standardize and use existing libraries.
Employ code snippets and stay inspired by reading widely to broaden your perspective and speed up problem-solving.
Collaborate with others using real-time code editing tools.
Use CodeRush for its helpful shortcuts during coding, which can speed up your work.
Spend a little bit of time each week just looking for new creative ways to do things that may or may not be directly related to what your currently working on is a great way to find new tricks or tools.
Reduce distractions by limiting social media, email checks and work with a clear view to encourage focus; you might try the Pomodoro Technique for time management as well.
It also helps to work with other programmers around you.
Everyday come to office and write down everything you want to finish in (sticky notes) outlook notes.
Pair programming provides multiple benefits, such as forced articulation of thoughts and exposure to different working styles and tools.
Use Emacs as a tool to augment your coding productivity.
Opt for ergonomically optimized keyboards to support comfortable and efficient coding.
Build a functional part of the project, prototype in small parts, and add features as you go along to avoid significant debugging later on; aim for incremental changes on a stable system.
Write your own productivity tools tailored to your frequent tasks for long-term efficiency gains.
Working from home can offer an optimized environment with fewer interruptions, helping you to concentrate on demanding tasks.
Consider using functional programming and lambda expressions to streamline your code.
Having a clear vision of your objectives and the pathway to achieving them can significantly boost productivity.
Being genuinely enthusiastic about your work naturally increases your efficiency and enjoyment.
Listening to music, using a comfortable chair, and eating beforehand, juggling, drinking Yerba Mate tea are all ways to create a conducive environment for relaxed and focused programming.


Question: how do you extract an apps data from a full backup made through adb backup?

Response:
To extract .ab files, several methods are available, where one option is an open-source project under the Apache 2.0 license, which allows conversion of .ab files into tar files.
Another method involves the Perl AdbBackupRoutines from an XDA thread, which requires certain Perl libraries and is feasible if the backup is unencrypted.
Alternatively, a combination of bash, cat, and gunzip (gzip) can be used to handle the extraction process, starting with an unencrypted backup.
If employing bash is not preferred, a single command line can combine several operations to unpack the backup, i.e., ( printf "\x1f\x8b\x08\x00\x00\x00\x00\x00"; tail -c +25 backup.ab ) | tar xfvz -.
For Windows users, PowerShell scripts with header manipulation are another means to work with .ab files, but manual extraction with tools like 7zip may be needed due to potential issues with the tar executable in Windows.


Question: is it a bad idea for a firewall to block icmp?

Response:
Blocking ICMP in its entirety is probably not the best idea, and, some might say, not only useless, but in most cases also harmful.

However, it depends on the area in which it is used and since firewalls are able to act on type and code parameters, you can decide what to pass through the firewall and what not; it is probably not wise to use it on border routers, but for internal network diagnostics, yes, it can be used.


Question: are password-protected zip files secure?

Response: The password protection on an Encrypted ZIP file allows only intended parties to view the contents of the files, but it is not secure on a number of counts, including in the sense that you can't depend on the integrity of the zip file.


Question: why is the os obfuscation defense against its a unix system! not widely implemented?

Response:
From a security perspective, the concept of restricting system calls by obfuscating command names is a flawed approach since there are strictly better options available, and such a method is overall ineffective.
An alternative approach that is more effective for improving security is to simply not install unnecessary utilities like 'ls' and 'cat' on the system.
Furthermore, obfuscation is not equated with security, and attempting to obscure the operating system is essentially ineffective and is commonly understood as nonsensical.
In terms of usability, system administrators would struggle with the impracticality of memorizing obfuscated command names and dealing with additional complexity during system upgrades and debugging.
Ultimately, "Security through Obscurity" is identified as an antipattern, as it is an old and not-so-preferred idea.
Additionally, in security design, efforts to obscure a system's functions tend to be counterproductive, incur high time costs, and offer minimal security value.
The cost-effectiveness of obfuscation strategies also needs consideration; if the cost is low and the security benefit, even if small, is deemed worth it, such measures can be implemented.


Question: why are ipv4 addresses 32-bit?

Response: This is because Vint Cerf considered 32-bits to be more than sufficient for that purpose; he did not expect IPv4 to be used in production systems and so no greater thought was given to the size of the address space.


Question: how can waiting 24 hours to change the password again be secure?

Response: If an attacker gets access to the webinterface to change your password and to your mails via POP3, they can reset your password again and again, so even if you regain access with the reset function, and validate yourself with your mailbox access on your smartphone or via SMS to your smartphone, the attacker (who still has access to your mailbox via POP3) can keep resetting your password; but this attack vector is easily preventable, if password changes are possible only every 24 hours.


Question: on os x, what files are excluded by rule from a time machine backup?

Response:
On OS X, Time Machine, Applications can instruct Time Machine to ignore particular files.
Additionally, there is a predefined list of built-in exclusions stored in /System/Library/CoreServices/backupd.bundle/Contents/Resources/StdExclusions.plist.
The root folders of snapshots maintain a property list that includes folders excluded from the snapshot.
To check whether a file or directory is excluded from backup, you can use commands like xattr (xattr path_to_file_name) or mdls (mdls path_to_file_name), but the most effective method is utilizing tmutil, as it comprehensively checks whether the item is on any exclusion list.


Question: is learning cobol worth it?

Response:
Learning COBOL might not be worth it according to some perspectives.
While some argue that COBOL cannot be a bad thing and that there is a demand for skilled COBOL programmers, others suggest that it is a dead language and there are better things to learn first.
If you envision yourself as a COBOL programmer, then pursuing it could be worthwhile.
However, there's a contrasting opinion that it may not be worth it from a work market perspective.
Having COBOL on your resume might not be beneficial in some places and could even be considered a liability.
Additionally, some argue COBOL probably isn't the right language, emphasizing that nothing is interesting in it unless you have a real practical need for it.
Overall, opinions vary, and the decision depends on individual career goals.


Question: what is the fedora equivalent of the debian build-essential package?

Response:
The closest equivalent is likely to be installing the packages: sudo dnf install make automake gcc gcc-c++ kernel-devel.

You could use the yum-builddep package: sudo yum install yum-utils sudo yum-builddep $the_pkg_you_want_to_build.

For Fedora 23 and above try using: dnf install @development-tools.


Question: how would a resourceful government block tor?

Response:
In order to block Tor, all that has to be done is have the current list of Tor nodes then block them bi-directionally via the Routers or Firewalls.

If France wants to ban Tor, it will need to perform deep packet inspection (similar to Chinese firewall), but even such measures could be defeated by specialized tools like Obfsproxy.

A government that controls all the network equipment of ISPs in the country can decide which websites and services residents are allowed to access, and can know who is accessing what, and the ISP-level filter can detect whether someone is connecting to a Tor relay and deny it.

Tor binaries have a hard-coded list of IP addresses they use for bootstrapping (the process of finding other nodes on the Tor network), and the Tor client will normally connect to one of these servers on startup to download the list of relays, so blocking the directory authorities will block the bridging IP addresses and prevent the exchange from taking place.


Question: task switcher moves to non-primary display on mavericks-catalina

Response:
To address the issue of the Task Switcher following the last-moused-over dockbar, it's recommended to hide the menu bar on your secondary monitor.
Also, do not position the Duet "below" your other display in the arrangement.
Finally, unchecking and re-checking Dock > Automatically hide and show the dock, will help.


Question: what is the purpose of gibberish comments posted to my blog?

Response:
Spammers are meticulously examining your website, initially checking to see if their comments are published and verifying which link formats will transform into clickable hyperlinks on your site.
They are also attempting to undermine any spam filters you may have by using random strings of text, circumventing blacklists, and corrupting self-learning filters with irrelevant data.
Additionally, these tactics are deployed to gradually degrade the precision of filters that employ Bayesian analysis by polluting the data they consider 'good'.


Question: how to retrieve deleted files from unix server?

Response:
One effective program for file recovery is ext3grep.
Another option is using the 'undelete' function in the 'del' command, which is versatile and works with any file system.
The testdisk utility is also a viable choice for file recovery.  Command lines recovery tools such as ufs-explorer and photorec have proven successful for data retrieval.
Additionally, ext4magic has demonstrated its effectiveness in restoring deleted files.


Question: is awk faster than grep?

Response:
In general, grep is faster and more efficient than awk, being a compiled C-code program optimized for finding patterns while awk is an interpreted programming language.
When it comes to basic string searches, grep reaches speeds orders of magnitude faster than awk.
However, the speed advantage of grep over awk might vary depending on system implementations and the dataset being used.


Question: how do i review my own code?

Response:
The Personal Software Process technique could effectively improve the quality of your work by utilizing historical defect data to develop targeted review checklists.
Additionally, employing code review and metric tools, although not a replacement for human expertise, can offer insights into potential areas of poor design within your code.


Question: installing .pkg with terminal ?

Response:
To install all .pkg files from the current directory to the /Applications folder on a Mac, you can use the following script: for f in *.pkg ; do sudo installer -verbose -pkg "$f" -target / done.
Alternatively, to install the packages into your home directory rather than the system Applications folder, you can adjust the script with -target ~.


Question: how can i check if swap is active from the command line?

Response:
Try swapon -s for a list of current swap devices and other relevant information.

In linux, you can use cat /proc/meminfo to see total swap; in Mac OS X, you can use vm_stat to see information about virtual memory (swap), or use ls -lh /private/var/vm/swapfile* to see how many swap files are being used.

With Linux you can use the top command to see if the swap is active or not, in which you will see something like kswapd0; the top command provides a dynamic real-time view of a running system, thus you should see the swap there, and if you don't see it there, it's more then likely it isn't working, so to restart it or enable it, you can use this command: sudo swapon --all --verbose (source), and then by running the topcommand again you should see it.

You can try the command swapon --show, which is bit better than swapon -s as it provides human friendly size units.


Question: how to rsync only new files

Response:
According to the rsync manual, the option `--ignore-existing` is used to skip updating files that already exist on the destination.
Using `-t` (instead of `-a`), and `-P` (equivalent to `--partial--progress`): rsync -h -v -r -P -t source target will also transfer only new files.


Question: what do the scripts in /etc/profile.d do?

Response: The usage of a configuration directory allows modifications to an application's configuration, which would not be viable with a single, shared configuration file.


Question: is it possible to see cp speed and percent copied?

Response:
Standard versions of the 'cp' command lack the feature to show progress during file copying, although some say it will work if you use a tool called progress or a cp patch.
Progress (formerly 'cv') identifies and reports on the progress of various core utilities commands.
However, you have several alternatives to track the progress; for single files, 'pv' will work, and for multiple files or directories, you can combine 'tar' with 'pv' or use variations of 'tar' commands for systems like Solaris.
'rsync' is also a versatile tool that can display the overall percentage of copying progress with flags such as --progress or --info=progress2.
Additionally, you can observe changes in the output folder using 'watch' with 'du' to monitor size over time, or you can write a script to estimate throughput.
Commands like `sudo watch lsof -p`pgrep -x cp` can track the progress of already running 'cp' command processes.
Alternatives like 'mc' (midnight commander) provide a file manager interface with progress visibility.
There is also 'cpv,' a wrapper for 'pv' to facilitate progress bars similar to 'cp', or another method to monitor reliability through '/proc'.
For a text-based progress interface, 'vcp' can be used after it is installed.


Question: can iphone x case be used for xs?

Response: iPhone X and iPhone XS are near identical in dimensions and cases for iPhone X should fit iPhone XS, but the camera lens will not align properly.


Question: what is the difference between link local and unique local?

Response:
Well-formed answer
-------------------

IPv6 link-local addresses are obligatory and non-routable, restricted to a single link which has a uniform link-local network.  These addresses function for single-link operations such as automatic configuration and neighbor discovery, and routers are prohibited from forwarding packets with these addresses across different links.  On the contrary, unique local addresses (ULAs), while similar to IPv4's private addresses, are routable within certain local scopes but not on the global internet.  Initially, a part of the ULA space was reserved for centralized allocation to ensure uniqueness, but this has not transpired, resulting in their reservation status.  The other half of the ULA block is left to probabilistic uniqueness, where sites pick /48 prefixes from within this space in a pseudo-random manner.

Unfaithful answer with Insertions
---------------------------------

IPv6 link-local addresses are a required and non-routable subset of IP addresses that are only valid on a single link, thus they cannot be forwarded beyond their designated link.  Unique local addresses (ULAs) are analogous to IPv4's RFC1918 addresses and can be routed within a private network or between a collective of sites, but like link-local addresses, ULAs are not for internet advertising.  The reservation of a portion of the ULA space due to a lack of centralized allocation means some ULAs are reserved, while others are intended for local use and picked pseudo-randomly to avoid address collisions, a system designed to mitigate issues encountered with IPv4 private addressing when interconnecting separate private networks.

Unfaithful answer with Substitution
-----------------------------------

IPv6 link-local addresses have to exist on all devices and are confined to the scope of a single link—they do not traverse across multiple links.  ULAs are designed for intra-site or certain inter-site routing and bear resemblance to IPv4's RFC1918, providing a solution for local communications without the possibility of global internet routing.  With one segment of the ULA range being officially reserved and unused due to an absence of central allocation, and another allocated for pseudo-random, likely unique local usage, ULAs serve to circumvent the address conflicts often observed with IPv4's private network interconnections.


Question: logitech mouse: how can i use additional buttons?

Response:
Steermouse and Mac Mouse Fix are tools that have proven to be effective in this regard.
USB Overdrive is another tool you can consider for configuring the extra buttons on your Logitech mouse.
BetterTouchTool is a versatile solution that allows you to map mouse buttons to keyboard shortcuts or predefined actions.
If you prefer a program like Karabiner, it also offers the functionality to customize mouse buttons.
For a more specific issue, if interested in using the side buttons, an open-source menu bar utility called SensibleSideButtons might be the solution you need.
Additionally, Hammerspoon, a free and open-source tool, provides versatility in configuring mouse buttons.


Question: can ipv6 connect to ipv4?

Response:
An IPv4-only host cannot directly communicate / interoperate with an IPv6-only host, because they are two completely separate protocols, with separate, incompatible packet headers and addressing.
However, NAT64/DNS64 is a common approach for clients, allowing IPv6 clients to reach IPv4 servers, while reverse proxies can be used for directing traffic for servers.


Question: macos windows requiring an explicit click to make active, before ui elements inside can be clicked

Response:
Generally speaking, the answer is "no"; however, there are some exceptions or workarounds to consider.
For instance, you can operate any control in an unfocused window using Cmd-Click, bypassing the need to focus the window first.
In specific applications, such as Terminal.app, Cmd-Right Click will paste the last highlighted text in any terminal window into the Terminal, focused or not.
There also used to be a hidden focus-follows-mouse option for Terminal.app windows.
If you're looking for a tool that enables focus-follows-mouse as a default system behavior, a tool called Yabai, which can be found on GitHub, is recommended.


Question: how can i manually delete old backups to free space for time machine?

Response:
The most straight forward way is to go to the point in Time Machine you want to delete and select the cog icon in the finder and choose the option 'Delete Backup'.
Then enter your password and that's it.
You can also use the following bash script to find the oldest Time Machine backup on your computer: COMPUTER_NAME=$(scutil --get ComputerName) NBACKUPS=$(tmutil listbackups | grep "$COMPUTER_NAME" | wc -l) OLDEST_BACKUP=$(tmutil listbackups | grep "$COMPUTER_NAME" | head -n1) LATEST_BACKUP=$(tmutil latestbackup) echo Latest backup: $LATEST_BACKUP if [[ -n "$LATEST_BACKUP" && "$LATEST_BACKUP" != "$OLDEST_BACKUP" ]].
Then you can delete it by entering this script: ${OLDEST_BACKUP##*/} and selecting 'Y' when prompted.
As manually deleting backups in reverse order is not desirable, you can apply a script that will delete the next one when the current one completes.
It's important to note that while the 'tmutil delete' command deletes backups, it does not guarantee to reclaim the space they previously occupied.


Question: what is the difference between us and canadian keyboard layout?

Response: There's no difference, except for the flag icon.


Question: why doesnt mac os x source ~/.bashrc?

Response: Bash only reads the .bashrc file for non-login shells by default; since Terminal launches bash as a login shell (which can be seen in the output of the "w" command), it doesn't automatically read the .bashrc file.


Question: find the total size of certain files within a directory branch

Response:
In computing disk usage for JPEG files, you can use various commands such as "du -ch public_html/images/*.jpg" to check the total usage within a directory and the command "find ./photos/john_doe -type f -name '*.jpg' -exec du -ch {} +" which may produce multiple totals if the file list is extensive.
For an efficient solution that works on different systems including Mac OS X, and gives you the total answer in gigabytes, you can implement "find . -iname "*.jpg" -ls | perl -lane '$t += $F; print $t/1024/1024/1024" GB."
Additionally, to work with any locale, you could use "LC_ALL=C find ./photos/john_doe -type f -name '*.jpg' -exec du -ch {} +" or "find -type f -iname *.jpg -print0 | du -ch --files0-from=-" are commendable commands.


Question: how do i speed up new terminal tab loading time?

Response:
To improve your new Terminal tab loading time, consider reducing your history to a range of 4,000 to 10,000 lines, and try exiting and discarding any saved window configurations.
Alternatively, create a blank file entitled .hushlogin in the home directory within the Terminal.app, which should help decrease the load time of a new Terminal tab by suppressing certain process that happen during loading.
Similarly, configuring Terminal to start with a non-standard shell and creating a symlink to your preferred shell can also mitigate delays associated with the ASL system log lookup.
If you're using Active Directory, enabling the "Create mobile account at login" option in the AD service settings via Directory Utility may resolve issues related to your AD credentials by storing them locally.


Question: how do you make someone not your best friend on snapchat?

Response: They are selected automatically by a magical Snapchat friendship algorithm, so there isn't anything much you can do, other than blocking the users to remove their names from the list.


Question: why inode number starts from 1?

Response:
In the ext4 filesystem, Inode 1 serves the specific function of monitoring bad blocks within the storage device.
It essentially functions as a concealed file that lists bad sectors identified on the disk, which can be detected using tools such as e2fsck with the "-c" option.


Question: do gpus work with bootcamp?

Response: Yes, in general, external GPUs work with Boot Camp.


Question: how does ransomware get on peoples computers?

Response:
Ransomware typically arrives via emails falsely claiming to have pending invoices attached with Word documents; when these documents are opened, the ransomware installs itself and begins its encryption process.
It's not sufficient to avoid ransomware by merely steering clear of downloads from dubious websites; instead, ransomware can also come from trusted sources like the official website of a popular application—as demonstrated by the ransomware infection in the OS X version of the Transmission BitTorrent client through its official website.


Question: how should i distribute my public key?

Response:
The recommended method for distributing a PGP key is to use one of the available key servers, such as keyserver.ubuntu.com or pgp.mit.edu.
In addition, you could consider uploading your key to a keyserver and then providing a link to it on platforms like LinkedIn or Facebook.
Alternatively, you can publish your key on your own website, which allows for control over the key by enabling you to remove or update it as needed.
Another strategy involves publishing your public key and providing a public-key token through a secure channel to further authenticate yourself.
Additionally, uploading it to a keyserver or making an entry on a service like Biglumber can facilitate key signing interactions with other individuals.
You can also include a link to download your key in a blog post or use it to sign your emails.


Question: what is the difference between a smart switch and unmanaged switch?

Response:
Smart switches are moderately capable and occupy a middle price range, being more expensive than unmanaged switches but less costly than managed switches, which makes them a suitable intermediary solution when the full features of a managed switch are not warranted.
Managed switches are typically utilized in large, professionally managed networks due to their comprehensive management features and the perception of enhanced reliability they offer.


Question: how do i assign a keyboard shortcut to an applescript i wrote?

Response:
Use launching tools like Alfred, Keyboard Maestro, or FastScripts that allow setting global hotkeys and executing AppleScripts.
It's also feasible to accomplish this without resorting to paid third-party applications by utilizing Automator to make a Quick Action and assigning hotkeys through the System Preferences.
Automator is instrumental in creating a service that facilitates running an AppleScript and attaching a keyboard shortcut to it within the System Preferences.


Question: how do you empty the buffers and cache on a linux system?

Response: Use the command: # echo 1 > /proc/sys/vm/drop_caches.


Question: why only port 80 for web services?

Response: Port 80 and 443 are the "default" ports for HTTP/HTTPS, which means that you do not have to specify the port (http://www.example.com:80, https://www.example.com:443) when using a web browser, and the server doesn't waste resources by handling connections in one or more ports (the Server needs to only listen on port 80 for HTTP, and not on several ports).


Question: what is the difference between the bash operators [[ vs [ vs ( vs ((?

Response:
`[ / test` is a standard utility for conditional execution in POSIX shells, and all POSIX shells have it built in, although POSIX standards do not require it.
The `[[ ... ]]` construct also determines an exit code for conditional execution, and it features extended capabilities such as the ability to test if a string matches a wildcard pattern.
It is noted that the `[[ ... ]]` is a relatively newer special shell construct, differentiating itself by not word-splitting variables.
Running a set of commands in parentheses `( ... )` creates a subshell, which provides a temporary environment that does not affect the overall shell's state.
Parentheses indicate a subshell where commands execute in a separate subprocess, which does not have lasting effects outside the subshell.
An arithmetic instruction sits within double parentheses `((...))`, allowing computations on integers.
Meanwhile, single brackets `[ ... ]` are used for conditional expressions like checking if a variable is empty or a file exists.
`[` is POSIX compliant while `[[` is a Bash extension influenced by Korn shell, with the latter parsed differently and providing certain advantages regarding parsing and word splitting.
The `]` test evaluates conditional expressions, while parentheses `( )` create a subshell group where commands inside execute in a separate process, and double parentheses `(( ))` are utilized for arithmetic expressions within the shell.


Question: enable and disable system apps via adb

Response: The command to disable an application on your device is pm disable, followed by the package's name, and you must have root access to perform this action.


Question: which elliptic curve should i use?

Response: The secp521r1 is recommended but for faster solutions, non-NIST curves like Curve25519 are an alternative.


Question: what is negative code?

Response:
Code optimization often involves reducing the amount of code, achieved by eliminating unnecessary parts or using more concise programming constructs.
Achieving the same functionality with less code is an objective shared among programmers.


Question: received a set of sms/mms containing 2 photos, a voice message, and a text i need help with google maps link from a known contact. is it spam?

Response:
The situation described is likely not due to a virus but a panic function included in some Android phones, which can be activated by pressing the power button three times to send emergency messages if the user is in danger.
This panic feature is a safety mechanism built into certain phones, which can send pictures, audio clips, and GPS locations to designated contacts.


Question: how do aslr and dep work?

Response:
Address Space Layout Randomisation (ASLR) is a security measure employed to hinder the success of shellcode by randomizing the placement of modules and memory structures.
In conjunction with Data Execution Prevention (DEP), which obstructs the execution of specific memory areas such as the stack, these technologies significantly challenge the exploitation of vulnerabilities through shellcode or Return-Oriented Programming (ROP) techniques.


Question: consequences of the wpa2 krack attack

Response:
Both clients and access points are susceptible to the vulnerabilities described in the website: https://www.krackattacks.com: "Who is vulnerable?" on KRACK attacks.
Clients are advised to utilize encrypted software-based networking methods such as VPNs, Tor proxies, HTTPS, and SSH, to mitigate potential eavesdropping risks.
Additionally, in the absence of vendor patches, network owners can use alternative methods such as sneakernet or Ethernet cabling to secure critical systems and devices.
Despite the severity of the vulnerability, open networks pose an easier target for attackers, hence the real-world consequences of KRACK attacks are likely to be limited for most users.


Question: what is the point of ctrl-s?

Response:
CTRL-S was used in old VT100 terminals and similar systems to freeze the output, allowing users to read what was on the screen at the time.
This function is still very useful today to stop and resume output when reading long texts on a screen, utilizing CTRL-S and CTRL-Q commands.
Additionally, CTRL-S was used to turn off the paper tape reader on ancient teletypes, essentially a request to stop  transmission from the other end.


Question: make all new files in a directory accessible to a group

Response:
In your setup process, you can manage permission bits using umask, as well as set a group by making the directory setgid to a GROUPNAME.
When working with file systems and partitions related to Linux distributions, it is necessary to mount with acl support and utilize access control lists (ACLs) for better access control.
To enable ACLs on your file system, you may need to alter the mount options.
You can set up the directory's ACL to allow the group to have write permissions and to ensure these permissions are passed on to any files created within.


Question: when choosing a numeric pin, does it help or hurt to make each digit unique?

Response:
Repeating digits is a common human weakness when choosing PIN codes, which means they will be tried first by attackers, so ruling out repeated numbers increases security.

However, it depends on the implementation and on how the PIN is created: if the PIN is generated, excluding combinations will reduce the entropy, but for human-generated PINs you should exclude the most common combinations, such as 1234 and 1111.


Question: is it normal to spend as much, if not more, time writing tests than actual code?

Response:
It is normal to often have more code within the tests than in the actual code being tested.
Whether writing unit tests or other types of tests such as integration or acceptance tests, there can be many scenarios and edge cases to consider, which increases the volume of test code.
It depends on various factors, such as whether you're employing a test-driven development (TDD) approach or writing tests afterwards.
The time spent writing tests first through Test-Driven Development (TDD) or after the code could indeed be substantial, even exceeding the time spent writing the code itself.
However, this investment in testing could help build less buggy and more maintainable code, ultimately easing future development efforts.
Yet, it is crucial to be mindful of the potential for over-testing and the time spent maintaining the tests, which might not always indicate a productive testing strategy.