{"pageProps":{"posts":[{"slug":"blocking-unwanted-ai-bots-from-scraping-your-website","path":"/blog/blocking-unwanted-ai-bots-from-scraping-your-website/","title":{"rendered":"Blocking Unwanted AI Bots from Scraping Your Website"},"featured_media":358,"excerpt":{"rendered":"
AI models are increasingly scraping web content without permission. Here’s how to detect it, push back, and protect your work with smart tools and ethical boundaries.
\n"},"content":{"rendered":"\nA few weeks ago, I noticed something odd in the server logs of one of my websites. There was a sudden spike in traffic from unfamiliar IP ranges, many of them linked to data centers rather than regular ISPs. At first, I assumed it was another burst of spammy crawlers or maybe an aggressive SEO tool. But digging a bit deeper, the user agents were telling a different story—many of them masquerading as browsers or vague bots with names like “AIResearchBot” or “ModelTrainScraper.”
\n\n\n\nThat’s when it hit me: someone was likely scraping the content to train a language model.
\n\n\n\nIt’s not the first time this has happened, and this time I dug into the logs. I know I’m not the only one noticing this—and the problem of AI-generated visits is becoming a bigger and more persistent issue.
\n\n\n\nIn recent years, the proliferation of generative AI tools has fueled an arms race for data. Language models, like the one you’re interacting with right now, are hungry beasts that need massive amounts of text to learn how to generate and understand language. While a lot of this data comes from public or licensed sources, an increasing share is scraped from websites—often without the consent or even the knowledge of the site owners.
\n\n\n\nSo today I want to dig into what this means for people like us—bloggers, writers, small publishers, anyone who puts effort into creating content and running a website. And more importantly, I’ll talk about what we can do to block unauthorized bots and discourage the silent theft of our work.
\n\n\n\nLet me be clear: I’m not against AI. I think it’s fascinating and often useful. But I also believe in consent and respect for creators. If you’re building a model off someone’s content, you should ask permission—or at the very least, honor requests not to be included.
\n\n\n\nLet’s start with the basics. How do bots scrape content in the first place?
\n\n\n\nMost of them work by crawling your site the same way Google or Bing does—making requests to URLs, downloading the HTML, and parsing out the text. Some are polite, identifying themselves clearly in the User-Agent header and following rules in your robots.txt. Others are not. They ignore robots.txt, spoof their user agents to look like browsers, rotate IPs to avoid rate limits, and generally behave like someone sneaking into your house through a window because the front door was locked.
\n\n\n\nThat’s where it gets tricky. Because some scraping is legitimate and even beneficial. You probably want Google indexing your content so people can find it. But you probably don’t want a vague startup from who-knows-where copying your writing wholesale to build a chatbot.
\n\n\n\nBlocking that kind of scraping is possible, but it’s an arms race. Every time you block one method, someone finds a workaround. Still, there are things you can do that make a big difference.
\n\n\n\nrobots.txt
First off, use your robots.txt file. I know, I just said bad bots often ignore it—but good bots don’t. And it’s still the first line of defense. You can disallow entire directories or specific bots by name. For example, if you know a particular bot is hitting your site and you don’t want it there, add something like this:
\n\n\n\nUser-agent: BadBot\nDisallow: /
\n\n\n\nFor more general protection, you can disallow all bots except a few trusted ones:
\n\n\n\nUser-agent: *\nDisallow: /\n\nUser-agent: Googlebot\nDisallow:\n\nUser-agent: Bingbot\nDisallow:
\n\n\n\nProbably you do not want to block Bing and Google, do you? To block known AI scrapers, you can add rules to robots.txt like:
\n\n\n\nUser-agent: GPTBot\nDisallow: /\n\nUser-agent: CCBot\nDisallow: /\n\nUser-agent: ClaudeBot\nDisallow: /\n\nUser-agent: anthropic-ai\nDisallow: /
\n\n\n\nYou’ll need to keep this updated, as new bots and agents pop up regularly.
\n\n\n\nUnfortunately, robots.txt
does not support grouping multiple User-agents together under one User-agent
directive. Each bot must have its own block, even if they share the same rules.
So, this will NOT work:
\n\n\n\nUser-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
Disallow: /
\n\n\n\nBut … we have another possibility. In .htaccess
, you can combine multiple AI bot blocks using logical ORs within a single RewriteCond
if you’re comfortable with regex, or keep them separate for clarity.
.htaccess
If you’re running an Apache server, another effective layer of protection is your .htaccess file. This lets you deny access at the server level based on user agent or IP address. To block known scrapers, you could add something like this:
\n\n\n\nRewriteEngine On\nRewriteCond %{HTTP_USER_AGENT} (GPTBot|CCBot|ClaudeBot|anthropic-ai|naughty-AI) [NC]\nRewriteRule .* - [F,L]
\n\n\n\nOr to block entire IP ranges (say, from a specific data center):
\n\n\n\n<RequireAll>\n Require all granted\n Require not ip 34.64.0.0/10\n</RequireAll>
\n\n\n\nThese rules stop the request before it ever reaches your site’s content, which can save bandwidth and reduce risk.
\n\n\n\nThat’s why monitoring is so important. I use custom log scripts to watch for too many requests in a short time. When I spot patterns like that, I dig into the IPs and decide whether to block them.
\n\n\n\nYou can block IPs at the firewall level, with services like Cloudflare, or even directly in your web server config if you self-host. Just be careful not to block legitimate traffic. I’ve had a few cases where I accidentally locked too wide part of network because an IP ranges was shared by good and bad actors.
\n\n\n\nIf you’re using Cloudflare, don’t overlook the settings under Security > Bots. There are two features in particular that can give you quick wins:
\n\n\n\nThese settings are available even on the free plan 🙂 and they’re well worth enabling if you haven’t already.
\n\n\n\nAnother approach is to use a Web Application Firewall (WAF). Services like Cloudflare or AWS WAF can detect and block common scraping behaviors. They look for things like missing headers, suspicious request patterns, and known bad IPs. You can also write custom rules to challenge bots with CAPTCHAs or JavaScript challenges that real users can handle but simple scrapers can’t.
\n\n\n\nThen there’s the more creative route: honeypots and fake content. I’ve experimented with planting invisible links or text on pages—things that only a bot would see and follow. If something hits those links, I know it’s not human. It’s a bit sneaky, but when someone’s stealing your work, fair play goes out the window.
\n\n\n\nLegal protection is a whole other angle. Depending on your country, there may be copyright protections you can invoke, especially if you can prove that content was taken and used commercially without your permission. But enforcing this is another story—it’s expensive, slow, and often out of reach for small creators.
\n\n\n\nAnd that’s really the heart of it. This is an ethical issue as much as a technical one. I’m not writing this blog to tell you how to become an anti-bot fortress. I’m writing because we should be having this conversation. About what it means to be a creator in a world where machines can absorb and remix our words in seconds. About what consent looks like in the digital age. And about where we draw the line between innovation and exploitation.
\n\n\n\nI’m still figuring it out myself. My current setup isn’t perfect. I still see suspicious traffic sometimes, and I still worry about how my content might be used. But at least now I feel like I’m doing something—putting up a sign that says “no trespassing,” even if I know some people will ignore it.
\n\n\n\nIf you run a website and care about your content, I’d urge you to start paying attention to your logs. See who’s visiting. Ask yourself why. And don’t be afraid to push back.
\n"},"sticky":true},{"slug":"switching-from-a-simple-spreadsheet-to-a-dedicated-system","path":"/blog/switching-from-a-simple-spreadsheet-to-a-dedicated-system/","title":{"rendered":"Switching from a simple spreadsheet to a dedicated system"},"featured_media":345,"excerpt":{"rendered":"Efficient management of company data plays a pivotal role in the smooth operation and decision-making processes within any organization. Excell – the right tool for the start MS Excel can be a good starting point to organize customers’ data. It offers a low-cost solution that is easy to use and can help get started with […]
\n"},"content":{"rendered":"\nEfficient management of company data plays a pivotal role in the smooth operation and decision-making processes within any organization.
\n\n\n\nMS Excel can be a good starting point to organize customers’ data. It offers a low-cost solution that is easy to use and can help get started with customer data management, especially in small companies. Excel can help to store customer information, track interactions, and create simple reports. After a few hours and a moderate knowledge of Visual Basic, it is possible to turn Excell into an “invoice maker”.
\n\n\n\nHowever, as the company grows, Excel may become increasingly difficult to manage. Although MS Excel is a great tool, it does not have many necessary functions and features vital to support a growing business. MS Excel is not typically considered a full-fledged CRM system.
\n\n\n\nThere are several reasons why a company may have to switch from an improvised CRM built in MS Access or MS Excel to a dedicated system.
\n\n\n\nMS Access can work well for small to medium-sized databases, but as the size of the database grows, performance drops. This is especially bothersome when working with a remote DB server. A dedicated system, working on MySQL DB can handle a significantly grater load and serve a few times more requests on the same hardware.
\n\n\n\nMS Access databases are typically stored on a file server and can be vulnerable to security risks such as unauthorized access, data theft, and data corruption.
\n\n\n\nMS Access offers a limited set of customization options, while a dedicated system can be highly customizable to fit the specific needs of the company. This includes the ability to add custom fields, workflows, raports and unlimited possibilities of integrations with other systems. A dedicated system built on Laravel can be integrated with other systems and platforms used by the company, such as email, accounting software, or marketing automation tools. This can improve efficiency and productivity by reducing the need for manual data entry and improving data accuracy.
\n\n\n\nMS Access offers basic reporting capabilities, while a dedicated system offers more advanced reporting features, such as real-time dashboards, customized reports, and data visualizations.
\n\n\n\nTransferring data from spreadsheets to a dedicated system and relational database is necessary to enhance data integrity, accessibility, and scalability. However, this process is not without its challenges.
\n\n\n\nOne of the initial challenges in transferring data from Excel to a dedicated system and relational database is aligning the data structure and format. Excel spreadsheets allow flexibility in data representation, while relational databases require a well-defined structure. Inconsistencies such as missing data, duplicate entries, or varying data types can hinder a seamless transfer.
\n\n\n\nBefore the transfer spreadsheet’s records must be cleaned and standardized. This means:
\n\n\n\nMaintaining data integrity during the transfer process is crucial. Errors or inconsistencies can occur due to manual data entry, formula errors, or inadvertent alterations in the spreadsheet. These issues can lead to inaccurate data in the dedicated system and relational database, affecting subsequent analysis and decision-making.
\n\n\n\nLarge datasets in Excel spreadsheets are performance challenges during the transfer process. The migration process can take a significant amount of time, especially for large datasets. A potential challenge arises when new data is added to the old system while the migration is in progress. During this time, new data can be added to the old system, leading to a mismatch between the two systems. This can lead to data inconsistencies and discrepancies between the old system and the new database.
\n\n\n\nSwitching from a simple Spreadsheet-based solution to a dedicated system built on Laravel can offer better scalability, security, customization, integration, and reporting capabilities. Unfortunately, export/import of a huge amount of poorly structured data is not an easy task especially when new data is added constantly.
\n\n\n\nData migration should be automated so that it is possible to simultaneously work on the old system (reading, adding, writing and deleting records) as well as developing and testing the new system.
\n\n\n\nRe-importing data from the old system to the new one must be smooth and do not require manual actions.
\n\n\n\n\n"},"sticky":true},{"slug":"top-usefull-bash-commands","path":"/programming/bash/top-usefull-bash-commands/","title":{"rendered":"Top, usefull BASH commands"},"featured_media":0,"excerpt":{"rendered":"
To make copy of CD or DVD and save it as ISO image on HDD or SSD disk drive. Convert document format PDF to image JPG
\n"},"content":{"rendered":"\nTo make copy of CD or DVD and save it as ISO image on HDD or SSD disk drive.
\n\n\n\ndd if=/dev/cdrom of=~/cdrom_image.iso
\n\n\n\n\n\n\n\n# if not installed, first install pdftoppm\napt install poppler-utils
\n\n\n\n# produces document.png, 150 dpi, all pages as separate img\npdftoppm document.pdf document\n# only pages from 1 do 8\npdftoppm document.pdf document -png -f 1 -l 8\n# better quality 300 dpi\npdftoppm document.pdf document -png -rx 300 -ry 300
\n\n\n\n\n"},"sticky":false},{"slug":"vehicle-tinkering-in-the-garage","path":"/blog/vehicle-tinkering-in-the-garage/","title":{"rendered":"Vehicle tinkering in the garage"},"featured_media":343,"excerpt":{"rendered":"Renovating vintage cars gives a lot of satisfaction. I consider restoring a vintage car much more fun than assembling LEGO Technic.
\n"},"content":{"rendered":"\nAs a homeworker, I don’t need to use a car very often. I avoid driving a car whenever possible and I prefer to go by bike even if it is winter and the roads are white.
\n\n\n\nThe situation is completely different when the car is unique and has something special about it. Despite the lack of many modern gadgets driving such a vehicle is a real pleasure.
\n\n\n\nRenovating vintage cars gives a lot of satisfaction. These are old-style machines made with decent materials and without excessive savings. Despite the passage of time, their mechanisms are still working correctly. I consider restoring a vintage car much more fun than assembling LEGO Technic.
\n\n\n\nSince the spring of 2011, I have owned a Ford Ranchero 1974. I bought this beauty directly from Arizona in the USA. This pickup took some time and money to be roadworthy but generally was in pretty good shape for its years.
\n\n\n\n\n"},"sticky":true},{"slug":"backup-what-data-how-often-were-to-store","path":"/tech/computers/backup-what-data-how-often-were-to-store/","title":{"rendered":"Backup what, how often & were to store."},"featured_media":342,"excerpt":{"rendered":"
Are you prepared for losing your data? Why not? It is possible. Do you have a plan on how to archive vital data, how and where to store it securely?
\n"},"content":{"rendered":"\nAre you prepared for losing your data? Why not? It is possible. Do you have a plan on how to archive vital data, how and where to store it securely?
\n\n\n\nIs it worth spending time and money for making backups or can we assume it is not necessary and that everything would be ok despite not doing it?
\n\n\n\nMaking a backup of “everything” may be impossible and in most cases is not required. However, copying important data should be done every night.
\n\n\n\nYou will find how important it is when you lose crucial files. In real life, it is hard to exaggerate the importance of making copies. Statistically, people rarely make backups and are far from emphasizing this matter.
\n\n\n\nAre you an exception to this rule? Then stop wasting your time reading this!
\n\n\n\nIt is not as hard as it looks like. Imagine that you lost your laptop or cellular phone or main server yesterday. Try to continue work with the spare one but with a brand new operating system and no personal data. No history in your web browser and no single e-mail too.
\n\n\n\nThen it would become clear what you need the most and what is crucial for you. You will also have the possibility to feel how bad it is to lose data. Write out the list of data sources you need and make a plan on how to back them up and how often.
\n\n\n\nUnique data that is not possible to recover from nowhere else than from your copy is the most valuable. The article you wrote last week is probably more important than the newest movie you plan to watch next weekend. The movie can certainly be recovered, at least you can buy it again.
\n\n\n\nNow you know which data sources are most important for you. So, it is time to decide on how often it should be copied.
\n\n\n\nGenerally, it depends on two factors:
\n\n\n\nData modified very often should be duplicated daily or even more often. For instance, it may be a good idea to make a daily copy of the e-mail application storage.
\n\n\n\nOn the other side, it might be complicated to make a daily copy of all photos. Such a collection can occupy hundreds of gigabytes on the disk. Moreover, photos aren’t modified on daily basis and there is no point in making a backup of all pictures every day.
\n\n\n\nWhen dealing with an immense collection of valuable and unique data ex. family photobank, incremental backup can be taken into consideration.
\n\n\n\nMaking an incremental backup on Linux systems is pretty easy. The Linux command below will create a usual tar archive of directory /home/user/photos and save the tar archive in /backup/photos-2021-04-05.tar. Depending on the amount of data this can be a pretty big archive. We used –listed-incremental to point where tar should store the information about the state of files.
\n\n\n\ntar --listed-incremental=/backup/photos-incremental-list.txt -cf /backup/photos-2021-04-05.tar /home/user/photos\n\n\n\n
This command will make a copy of modified and new files – so in most cases, it will not be too big. It will make use of –listed-incremental=/backup/photos-incremental-list.txt to decide which files were modified added or deleted.
\n\n\n\ntar --listed-incremental=/backup/photos-incremental-list.txt -cf /backup/photos-2021-04-06.tar /home/user/photos\n\n\n\n
Similar procedure can be performed after adding or modifying photos.
\n\n\n\nWhen something bad happened, some photos are lost or deleted by mistake, just execute Linux commands:
\n\n\n\ntar --listed-incremental=/dev/null -xf /backup/photos-2021-04-05.tar\ntar --listed-incremental=/dev/null -xvf /backup/photos-2021-04-06.tar\n\n\n\n
The option –listed-incremental has to be used but the file used to store information about modified files is no longer needed.
\n\n\n\nSome parts of the data must suit the rest. For instance, on a web server, it is important to have a backup of the SQL database and file system made at the same time.
\n\n\n\nIf possible, a backup should be made while applications are stopped and nothing is being modified. In many cases, it is not possible to stop the server. Then you have to meet halfway and make a copy of the working system which can cause some problems but it is better than nothing.
\n\n\n\nOn redundant systems, it may be possible to stop a half, then make a copy while the other half is working normally and then synchronize databases and filesystems.
\n\n\n\nBackup should be stored on another computer in “another room”. That is minimum but what if thieves brake into your office and steal both of the PCs?
\n\n\n\nIt would be much better to store the backup in a separate building with a separate electrical network. The best place for backup storage would be “over the ocean” – as far as possible from the data source. Hopefully, such a scenario is technically feasible.
\n\n\n\nThe fewer the data in a backup the easier it is to deal with. Less data means faster compression, less space on the disk, faster recovery. All important data should be secured. In the same vein, unimportant data should be excluded from coping. That is why it is not a good idea to store 4K movies in a Documents folder.
\n\n\n\nIt is not a big deal to store tiny backups over the ocean – on another continent. Assuming that the amount of data is a few Gigabytes it would take several dozen minutes to download it if necessary.
\n\n\n\nWe are making a backup to stay safe. It would not be good if someone else steals private data or company secret information. It is a frequent practice that the system is secured very well, strong passwords and two-factor authentications. Unfortunately, at the same time backups are stored as “open text”.
\n\n\n\nIf backups are not strongly encrypted, an outsider may know passwords and backup will act as an open gate. Such situations can lead to breaking into important systems and cause a lot of troubles.
\n\n\n\n10 march 2021 update
\n\n\n\nA serious accident took place in OVH Data Center in Strasbourg, tonight. A significant amount of data and equipment was destroyed during the fire and extinguishing action. Even servers that weren’t directly affected will stay offline for a few days.
\n\n\n\n“We have a major incident on SBG2. The fire declared in the building. Firefighters were immediately on the scene but could not control the fire in SBG2. The whole site has been isolated which impacts all services in SGB1-4. We recommend to activate your Disaster Recovery Plan.“
\n\n\n\nOVH advised to apply “your Disaster Recovery Plan”. But hey … do you have one? Or have you relied on the hosting provider’s Recovery Plan? Unfortunately, the OVH’s Recovery Plan does not seem to encompass such an extensive failure. This means that you have no such recovery plan in this situation.
\n\n\n\nJust to be clear: I’m not against Cloud Computing, I’m not fighting OVH. Although in such a situation data security in “cloud solutions” starts looking pale. This is the lesson for everybody that you cannot blindly trust the assurances of service providers.
\n\n\n\nYou need your own recovery plan no matter what they write in the advertisements. It is worth checking the strings attached and getting to know what kind of accidents are covered by insurance. For example, fire is excluded in OVH’s insurance plans.
\n"},"sticky":true},{"slug":"copy-folder-with-symbolic-links-in-bash","path":"/programming/bash/copy-folder-with-symbolic-links-in-bash/","title":{"rendered":"How to copy a directory with symbolic links in Linux Bash?"},"featured_media":341,"excerpt":{"rendered":"BASH copy useful options. Dealing with symbolic links, preserve as it was or give them a new life.
\n"},"content":{"rendered":"\nThere are two base methods of copying Linux directories containing symbolic links. Symbolic links can be preserved or become regular files and directories which are independent of their source.
\n\n\n\ncp -rp source destination\n\n\n\n
In this method, we will get the exact copy of the source directory – it will preserve symlinks. Files and directories that have been symbolic links will stay symbolic links.
\n\n\n\nIf the symlink was pointing to the file in the copied directory it will also point to the corresponding file in the destination directory.
\n\n\n\nIf the symbolic link was pointing to the file outside copied directory it will point to the same file as in the source directory.
\n\n\n\nSymbolic links are poreserved as symbolic links.
\n\n\n\nLet’s make test file home.txt in home directory and test directory test1 with a test file file1.txt. We will also create two symbolic links (one to this file in the same directory and another to the file in home directory – one level UP)”.
\n\n\n\ncd ~\necho \"test in home 999\" > home.txt\nmkdir test1 \ncd test1\necho \"123\" > file.txt\n# create symbolic links\nln -s ./file.txt ./symlink.txt \nln -s ../home.txt ./symlinkhome.txt\ncd ~\n\n\n\n
After above operations
\n\n\n\nWe will copy the entire folder test1. All the symbolic links will stay intact.
\n\n\n\ncp -rp test1 test2\n\n\n\n
After the above operation
\n\n\n\nNow let’s add something to symlink1.txt and symlinkhome.txt in folder test2.
\n\n\n\necho \"new line 1\" >> ./test2/symlink.txt\necho \"new line 2\" >> ./test2/symlinkhome.txt\n\n\n\n
Let’s check what happened to files
\n\n\n\ncat ./test1/file.txt # (file unchanged)\ncat ./test2/file.txt # (new line \"new line 1\" was added)\n\n\n\n
All below have the same content
\n\n\n\ncat ./test1/symlinkhome.txt\ncat ./test2/symlinkhome.txt\ncat ~/home.txt\n\n\n\n
Time to clean test area
\n\n\n\nrm -rf test1; rm -rf test2; rm ~/home.txt\n\n\n\n
\n\n\n\nSymbolic links may not work in a target directory, thus sometimes it is better to copy the file instead of a symbolic link.
When we use this method we will also get a copy of the source directory. We will copy symbolic links and they will start to exist as new, independent files, in the target directory.
\n\n\n\nThe difference is that files and directories that have been symbolic links in the source directory will become regular files and directories. They will be the same as source objects at the time of making the copy.
\n\n\n\nAfter copying they will start to exist as independent objects not linked in any way to their sources. If we make any change of a file or a directory in the destination directory it WONT’T take effect on source objects. Objects in the new directory are independent, regular files and directories.
\n\n\n\n# copy symbolic links as regular files\ncp -Lrp source destination\n\n\n\n
As in the first example, we make a test file in home directory and make directory with a test file and two symbolic links (one to this file in the same folder and another to the file in home directory – one level UP).
\n\n\n\ncd ~\necho \"test in home 999\" > home.txt\nmkdir test1 \ncd test1\necho \"123\" > file.txt\nln -s ./file.txt ./symlink.txt \nln -s ../home.txt ./symlinkhome.txt\ncd ~\n\n\n\n
And the effect is the same
\n\n\n\nNow let’s copy the entire folder test1 preserving symbolic links.
\n\n\n\ncp -Lrp test1 test2\n\n\n\n
After this operation directory, test2 is a copy of test1 but
\n\n\n\nFor the test let’s add something to symlink1.txt and symlinkhome.txt in folder test2.
\n\n\n\necho \"new line 1\" >> ./test2/symlink.txt\necho \"new line 2\" >> ./test2/symlinkhome.txt\n\n\n\n
And time to check what happened to the files:
\n\n\n\ncat ./test1/file.txt # (file unchanged)\ncat ./test2/file.txt # (file unchanged we only modified symlink.txt which is regular file not a symlink to file2.txt)\ncat ./test1/symlinkhome.txt # is still linked to ~/home.txt\ncat ./test2/symlinkhome.txt # is independent file\ncat ~/home.txt # is linked to ./test1/symlinkhome.txt and wasn't modified\n\n\n\n
Don’t forget to clean test area
\n\n\n\nrm -rf test1; rm -rf test2; rm ~/home.txt\n\n\n\n
--help\n-L, --dereference always follow symbolic links in SOURCE\n-R, -r, --recursive copy directories recursively\n-p same as --preserve=mode,ownership,timestamps\n\n\n\n
Symbolic links can be copied with rsync and scp commands.
\n\n\n\n\n"},"sticky":true},{"slug":"energy-from-solar-panels","path":"/tech/electric/energy-from-solar-panels/","title":{"rendered":"Energy from solar panels"},"featured_media":344,"excerpt":{"rendered":"
Is solar energy truly free? What are the pros and cons of renewable power sources? What do we prefer not to mention …
\n"},"content":{"rendered":"\nBefore talking about solar energy, we have to define some electrical units tightly connected with the subject.
\n\n\n\nCordless kettle consumes a power of 2000 VA or 2000 W. An electric heater can have a power of 1000 – 3000 W. The engine of an average passenger car has a power of 100-200 Power Horses, that is around 150-300 kW.
\n\n\n\nWhen going by bike an average man can generate one-tenth of the power needed by the electric kettle. A professional cyclist can generate up to 400 Watts for an hour or two. Best cyclists can produce over 1000 Watts but only for a short time. That means that we would need at least two professional cyclists to boil the water in an electric kettle. And after that, they would be completely exhausted.
\n\n\n\nThe modern world needs lots of energy. Highly developed societies, like North America, consume a lot of power. The majority of that energy is produced by burning fossil fuels. This causes the greenhouse effect and is responsible for a significant part of air pollution.
\n\n\n\nPeople want cheap or even free energy. Some people want to be independent of the public power grid. More and more people are motivated by environmental reasons – they want to reduce their carbon footprint. As a result, alternative energy sources are gaining popularity all over the World.
\n\n\n\nThe solar panel’s efficiency increases each year and the cost per kVA, gained from solar cells, falls. This means that solar energy becomes cheaper each year. The Sun is pretty old but still in good condition and scientists say that it is going to operate for a long time. We can treat the sun as an infinite source of free energy.
\n\n\n\n\n"},"sticky":true},{"slug":"mysql-replace-on-duplicate-key","path":"/programming/data/mysql-replace-on-duplicate-key/","title":{"rendered":"MySQL Replace, On Duplicate Key"},"featured_media":0,"excerpt":{"rendered":"
Inserting new record into MySQL database may cause error in some cases. Key conflict
\n"},"content":{"rendered":"\nInserting new record into MySQL database may cause error in some cases.
\n\n\n\nKey conflict
\n"},"sticky":false},{"slug":"bezpieczenstwo-w-sieci","path":"/blog/bezpieczenstwo-w-sieci/","title":{"rendered":"Czy korzystanie z internetu może być bezpieczne?"},"featured_media":0,"excerpt":{"rendered":"Komunikacja Net to medium, jakie pomaga do masowej komunikacji oraz obejmuje swoim zakresem najprzeróżniejsze kanały przekazu w skali globalnej Niełatwo sobie zwizualizować, by komukolwiek, kto powinna się za obywatela tzw. “cywilizowanego świata” przekonanie Sieci stało się obce. Bez wahania mamy opcję uznać, iż sieć stała się nieodzownym elementem naszego życia. Praca Internet umożliwia ludziom na […]
\n"},"content":{"rendered":"Net to medium, jakie pomaga do masowej komunikacji oraz obejmuje swoim zakresem najprzeróżniejsze kanały przekazu w skali globalnej Niełatwo sobie zwizualizować, by komukolwiek, kto powinna się za obywatela tzw. “cywilizowanego świata” przekonanie Sieci stało się obce. Bez wahania mamy opcję uznać, iż sieć stała się nieodzownym elementem naszego życia.
\nInternet umożliwia ludziom na pracę zawodową, w szczególności pracę zdalną, upraszcza załatwianie spraw urzędowych, dopomaga zdobywać naukę i wykształcenie, doszkalać się, poznawać języki a w dodatku prowadzić życie towarzyskie, min. poznawać nowych ludzi, czy korzystać z mediów społecznościowych.
\nDo czasu, o ile świat wirtualny był polem działania uczonych, relatywnie nielicznej grupy odbiorców, jakieś regulacje prawne nie były potrzebne. Razem z komercjalizacją sieci zaczęto wprowadzać regulacje prawne, które mają tyle samo miłośników, co oraz przeciwników. Tobie pierwsi uważają, iż traktowanie Globalnej sieci jako wolnej przestrzeni to już krok do cyber anarchii, w jakiej swobodnie mogliby funkcjonować przestępcy. Przeciwnicy wykorzystania prawa na w przestrzeni wirtualnej uważają, iż jakikolwiek regulacje mocą prawa są bezzasadne, bo cyberprzestrzeń nie ma ani statusu państwowego ani międzynarodowego.
\nInternet jako sieć wielowymiarowej komunikacji, jaka umożliwia nieograniczenie przekraczać granice państwowe, kulturowe, może służyć ponadto w celach biznesowych, w wymianie wyrobów ale też usług a wtenczas uwidaczniają się bariery celne. Jedynie Unia Europejska opracowała deklarację o wolnym przepływie wyrobów ale też usług , a ponadto wprowadziła zasadę “wszędobylstwa”, wg, której wystarczy, żeby jeden fragment przestępstwa miał położenie w danym kraju, żeby podlegał jego jurysdykcji.
\nW naszym prawie nieobecność jest konkretnych norm, które regulowałyby istnienie w sieci, co nie jest równoznaczne, że panuje tam bezprawie. Omawiane zagadnienia regulują rozporządzenie prawa cywilnego, karnego czy prasowego. Przepisy tego rodzaju są na bieżąco modyfikowane w zależności od zmieniającej się sytuacji.
\nTak różne kodeksy nie wykluczają się, jednak nakładają we wzajemnej współpracy. Coraz bardziej w dodatku, zalecenia netykiety mamy opcję wyszukać w prawie autorskim, kodeksie etyki medialnej albo w ustawie o ochronie danych osobowych.
\n"},"sticky":false},{"slug":"edytor-tekstu","path":"/blog/edytor-tekstu/","title":{"rendered":"Poradnik – wyróżnienia w tekście"},"featured_media":0,"excerpt":{"rendered":"Wyróżnianie tekściku w tworzeniu prac prac licencjackich niesie ze sobą mnóstwo pozytywów. Przede wszystkim, tekst staje się bardziej urozmaicony, po kolejne wyróżnione zostają w nim ważne treści, po trzecie na podniesieniu wartości zyskuje ocena wizualna pracy. Do wariantów wyróżnień tekściku zaliczają się kursywa, boldowanie i podkreślanie. Wyróżnienia takie są zaliczane do szablonowych procedur edycji czcionki, […]
\n"},"content":{"rendered":"Wyróżnianie tekściku w tworzeniu prac prac licencjackich niesie ze sobą mnóstwo pozytywów. Przede wszystkim, tekst staje się bardziej urozmaicony, po kolejne wyróżnione zostają w nim ważne treści, po trzecie na podniesieniu wartości zyskuje ocena wizualna pracy.
\nDo wariantów wyróżnień tekściku zaliczają się kursywa, boldowanie i podkreślanie. Wyróżnienia takie są zaliczane do szablonowych procedur edycji czcionki, w jakie zaopatrzone są edytory tekściku.
\nKursywa to nic odmiennego jak pochylenie czcionki. Wykorzystuje się ją metodycznie, np. przy cytowaniu lub wprowadzaniu do pracy licencjackiej obcojęzycznych terminów. Kursywę w wielu przypadkach także wykorzystuje się w momencie, o ile wytwarza się podpisy rysunków i tabel. Aby uaktywnić rolę kursywy, wystarczy wystukać na klawiaturze kombinację klawiszy Ctrl I lub kliknąć na pasku formatowania u góry ekranu przycisk z pochylonym “I”.
\nBoldowanie to pogrubianie czcionki. Pożytkuje się je w wielu przypadkach dla wyróżnienia tytułów też śródtytułów w pracach licencjackich. Nie można jego natomiast stosować za wiele w tekście podstawowym, albowiem pogrubione słowo wybitnie rzuca się w nasze oczka oraz może odwracać wzgląd od kluczowych wiadomości tekściku. Boldowanie uruchamiamy kombinacją klawiszy Ctrl B też klikamy na przycisk na pasku formatowania z pogrubionym “B”.
\nDalszym typem wyróżnienia używanym w tekstach prac licencjackich może być podkreślenie. Wykorzystuje się je w dużej liczbie przypadków, ażeby zaznaczyć, iż jakiś fragment tekściku jest nadzwyczajnie zasadniczy, zawiera priorytetowe treści, może to być np. jakaś hipoteza sformułowana na kanwie obszernych wniosków, do jakiej w toku czytywania pracy wielokrotnie się wraca. Podkreślenie otrzymuje się przez wybranie kombinacji klawiszy Ctrl U ewentualnie kliknięcie na pasku narzędzi ikonki z podkreślonym “U”.
\nGeneralnie licencjaty powinny zawierać w sobie najrozmaitsze warianty wyróżnień, które pozwoliłyby czytelnikowi rozeznać się, na jakie dylematy powinien zwrócić szczególną wzgląd. Właściwie widziane jest dodatkowo wykorzystywanie kursywy, której z kolei wybiera się w nieco rozlicznych celach aniżeliby podkreśleń bądź boldowania, a chodzi w tym miejscu głównie o stronę wizualno-estetyczną pracy, ale także wyróżnianie słów pochodzenia obcego.
\n"},"sticky":false}],"media":[{"sizes":{"medium":{"file":"block-ai-scrapers-300x81.jpg","width":300,"height":81,"filesize":8826,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-300x81.jpg"},"large":{"file":"block-ai-scrapers-1024x275.jpg","width":1024,"height":275,"filesize":55039,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-1024x275.jpg"},"thumbnail":{"file":"block-ai-scrapers-150x150.jpg","width":150,"height":150,"filesize":7278,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-150x150.jpg"},"medium_large":{"file":"block-ai-scrapers-768x206.jpg","width":768,"height":206,"filesize":35901,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-768x206.jpg","src":"/images/block-ai-scrapers-768x206.jpg","placeholder":"/images/block-ai-scrapers-150x150.jpg"},"1536x1536":{"file":"block-ai-scrapers-1536x413.jpg","width":1536,"height":413,"filesize":98752,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-1536x413.jpg"},"2048x2048":{"file":"block-ai-scrapers-2048x550.jpg","width":2048,"height":550,"filesize":151507,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-2048x550.jpg"},"full":{"file":"block-ai-scrapers-scaled.jpg","width":2560,"height":688,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/2025/04/block-ai-scrapers-scaled.jpg"}},"id":358},{"sizes":{"medium":{"file":"data-migration-spreadsheet-300x140.webp","width":300,"height":140,"filesize":9682,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/data-migration-spreadsheet-300x140.webp"},"large":{"file":"data-migration-spreadsheet-1024x479.webp","width":1024,"height":479,"filesize":116146,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/data-migration-spreadsheet-1024x479.webp"},"thumbnail":{"file":"data-migration-spreadsheet-150x150.webp","width":150,"height":150,"filesize":6178,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/data-migration-spreadsheet-150x150.webp"},"medium_large":{"file":"data-migration-spreadsheet-768x359.webp","width":768,"height":359,"filesize":62492,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/data-migration-spreadsheet-768x359.webp","src":"/images/data-migration-spreadsheet-768x359.webp","placeholder":"/images/data-migration-spreadsheet-150x150.webp"},"full":{"file":"data-migration-spreadsheet.webp","width":1500,"height":701,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/data-migration-spreadsheet.webp"}},"id":345},{"sizes":{"medium":{"file":"solar-panels-on-the-roof-300x180.jpg","width":300,"height":180,"filesize":15655,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/solar-panels-on-the-roof-300x180.jpg"},"thumbnail":{"file":"solar-panels-on-the-roof-150x150.jpg","width":150,"height":150,"filesize":7732,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/solar-panels-on-the-roof-150x150.jpg"},"medium_large":{"file":"solar-panels-on-the-roof-768x461.jpg","width":768,"height":461,"filesize":70415,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/solar-panels-on-the-roof-768x461.jpg","src":"/images/solar-panels-on-the-roof-768x461.jpg","placeholder":"/images/solar-panels-on-the-roof-150x150.jpg"},"full":{"file":"solar-panels-on-the-roof.jpg","width":1022,"height":614,"mime_type":"image/jpeg","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/solar-panels-on-the-roof.jpg"}},"id":344},{"sizes":{"medium":{"file":"classic_cars_tinkering-300x127.webp","width":300,"height":127,"filesize":11778,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/classic_cars_tinkering-300x127.webp"},"large":{"file":"classic_cars_tinkering-1024x435.webp","width":1024,"height":435,"filesize":75220,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/classic_cars_tinkering-1024x435.webp"},"thumbnail":{"file":"classic_cars_tinkering-150x150.webp","width":150,"height":150,"filesize":6576,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/classic_cars_tinkering-150x150.webp"},"medium_large":{"file":"classic_cars_tinkering-768x326.webp","width":768,"height":326,"filesize":51048,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/classic_cars_tinkering-768x326.webp","src":"/images/classic_cars_tinkering-768x326.webp","placeholder":"/images/classic_cars_tinkering-150x150.webp"},"full":{"file":"classic_cars_tinkering.webp","width":1199,"height":509,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/classic_cars_tinkering.webp"}},"id":343},{"sizes":{"medium":{"file":"hdd-data-lost-backup-300x148.webp","width":300,"height":148,"filesize":7768,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/hdd-data-lost-backup-300x148.webp"},"large":{"file":"hdd-data-lost-backup-1024x505.webp","width":1024,"height":505,"filesize":34372,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/hdd-data-lost-backup-1024x505.webp"},"thumbnail":{"file":"hdd-data-lost-backup-150x150.webp","width":150,"height":150,"filesize":4814,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/hdd-data-lost-backup-150x150.webp"},"medium_large":{"file":"hdd-data-lost-backup-768x379.webp","width":768,"height":379,"filesize":24288,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/hdd-data-lost-backup-768x379.webp","src":"/images/hdd-data-lost-backup-768x379.webp","placeholder":"/images/hdd-data-lost-backup-150x150.webp"},"full":{"file":"hdd-data-lost-backup.webp","width":1199,"height":591,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/hdd-data-lost-backup.webp"}},"id":342},{"sizes":{"medium":{"file":"bash-copy-symlinks-300x111.webp","width":300,"height":111,"filesize":3174,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/bash-copy-symlinks-300x111.webp"},"thumbnail":{"file":"bash-copy-symlinks-150x150.webp","width":150,"height":150,"filesize":2786,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/bash-copy-symlinks-150x150.webp"},"medium_large":{"file":"bash-copy-symlinks-768x284.webp","width":768,"height":284,"filesize":9830,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/bash-copy-symlinks-768x284.webp","src":"/images/bash-copy-symlinks-768x284.webp","placeholder":"/images/bash-copy-symlinks-150x150.webp"},"full":{"file":"bash-copy-symlinks.webp","width":964,"height":356,"mime_type":"image/webp","source_url":"https://wiecko-com.wp-admin.abacus.pl/wp-content/uploads/blog/bash-copy-symlinks.webp"}},"id":341}]},"__N_SSG":true}