November 2019 dev links

Developers and Open Source authors now have a massive amount of services offering free tiers, but it can be hard to find them all in order to make informed decisions.

This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings that have free tiers for developers.

https://free-for.dev/#/

What interface component would you use for selecting from a large set of options? For most designers, checkboxes come to mind. But a long list of checkboxes is intimidating to users and can cause them to abandon your form. Not only that, but checkboxes are not efficient or easy to use because they take up space, increase the number of visual elements, and offer small tap targets.

https://twitter.com/JimMcKeeth/status/692596120464150528

I use the Chrome Developer tools pretty much daily, but there are a few things I wish I knew earlier

https://dev.to/lpellis/things-you-may-not-know-about-chrome-devtools-53k6

Here’s one of the best essays I’ve ever read about why progressive web apps are important, how they work, and what impact they have on a business: PWAs are powerful, effective, fast and app-like. It’s hard to imagine a mobile web property that could not be significantly improved via PWA implementation. They can also potentially eliminate the need for many “vanity” native apps that exist today.

https://ymedialabs.com/progressive-web-apps

I think about and enjoy very boring CSS stuff—probably much more than I should do, to be honest. One thing that I’ve probably spent too much time thinking about over the years, is CSS resets.

https://hankchizljaw.com/wrote/a-modern-css-reset/

https://arnaud.at/emoji

Large file size results in larger download times and parsing times. It’s simple as that.

https://dev.to/adrianbdesigns/improving-css-performance-and-file-size-an-in-depth-guide-4mb5

We migrated 75 petabytes of internal data stored in nearly 7,500 Oracle databases to multiple AWS database services

https://aws.amazon.com/blogs/aws/migration-complete-amazons-consumer-business-just-turned-off-its-final-oracle-database/

October 2019 dev links

Easy-To-Use CSS Gradients

Creating a CSS gradient from scratch can be intimidating. But, luckily, there’s a little helper out there that takes away the trouble and makes using gradients a simple act of copying and pasting. Say hello to Gradient Magic, a gallery of unique CSS gradients with everything ranging from standard gradients to angular, striped, checkered, and burst gradients. To find your favorite, you can browse the gallery by style and color. A great addition to any toolkit! 

https://www.gradientmagic.com/

How to do a code review

The pages in this section contain recommendations on the best way to do code reviews, based on long experience. All together they represent one complete document, broken up into many separate sections. You don’t have to read them all, but many people have found it very helpful to themselves and their team to read the entire set.

https://google.github.io/eng-practices/review/reviewer/

My favorite CSS hack

There is one CSS snippet that I have been copy-pasting for 5 years. It is meant to be used when you are working with layout. Different depth of nodes will use different colour allowing you to see the size of each element on the page, their margin and their padding. Now you can easily identify inconsistencies.

https://dev.to/gajus/my-favorite-css-hack-32g3

The cost of JavaScript in 2019

One large change to the cost of JavaScript over the last few years has been an improvement in how fast browsers can parse and compile script. In 2019, the dominant costs of processing scripts are now download and CPU execution time.

https://v8.dev/blog/cost-of-javascript-2019

Moving beyond console.log() — 8 Console Methods You Should Use When Debugging JavaScript and Node

Moving beyond console.log and learn the console functions you have never used for debugging!

https://levelup.gitconnected.com/moving-beyond-console-log-8-console-methods-you-should-use-when-debugging-javascript-and-node-25f6ac840ada

Usage Share of Internet Browsers 1996 – 2019

Can I email

A new place to check email clients support for HTML and CSS features.

https://www.caniemail.com/news/2019-09-09-introducing-caniemail/

How did MS-DOS decide that two seconds was the amount of time to keep the floppy disk cache valid?

MS-DOS 2.0 contained a disk read cache, but not a disk write cache. Disk read caches are important because they avoid having to re-read data from the disk. And you can invalidate the read cache when the volume is unmounted.

But wait, you don’t unmount floppy drives. You just take them out.

The boring technology behind a one-person Internet company

Listen Notes is a podcast search engine and database. The technology behind Listen Notes is actually very very boring. 

https://broadcast.listennotes.com/the-boring-technology-behind-listen-notes-56697c2e347b

Links

Câteva linkuri interesante de pe twitter.

Implementare ‘cumpără 2 produse iar al 3-lea îl primeşti gratis’ în Magento

Implicit Magento nu are opţiunea din titlu inclusă, sau cel puţin nu în versiunea 1.7 pe care am testat eu. Există ceva asemănător, cumperi 2 produse iar al 3-lea e gratuit, dar este vorba de acelaşi produs. În cazul de faţă am nevoie ca la oricare 3 produse în coş,  al 3-lea cel mai ieftin să fie gratuit.

La o căutare pe google am găsit o soluţie care aplică un discount fix sumei din coş, soluţie preluată de aici.

La codul din Observer.php am adăugat modificări astfel încât reducerea să nu fie fixă ci să fie 2 + 1 unde produsul gratuit e cel mai ieftin produs aflat în coş. la 6 produse avem 4 + 2 gratis se iau 2 cele mai ieftine, se aplică discount la coş cu suma preţului lor, şi tot aşa.

[…]

$discountAmount= 0; 
$counter = 0;
$arritemsval = array();
foreach($quote->getAllItems() as $item){

 

for($i=0;$i<$item->getQty();$i++)
{
$arritemsval[$counter] = $item->getPriceInclTax();
$counter++;
}

}

sort($arritemsval);

$itemstodiscount = intval($counter/3);

for($j=0;$j<$itemstodiscount;$j++)
{
$discountAmount += $arritemsval[$j];
}

if($quoteid) {

[…]

Soluţia se poate modifica în 1+1 gratis (al 2-lea produs, cel mai ieftin, gratuit) schimbând cifra 3 cu 2

$itemstodiscount = intval($counter/2);

Magento – ordonare după preţul redus

Implicit în Magento (cel puţin în versiunea 1.7) la ordonarea produselor după preţ într-o categorie se ia preţul întreg. În cazul în care avem un produs cu preţ redus, acest preţ redus nu este luat în considerare la ordonare, ci se ia preţul întreg.

Pentru a ordona după preţ asc / desc ţinând cont şi de preţul redus dacă acesta există, a trebuit să modific într-un fişier din core.

/app/code/core/Mage/Catalog/Block/Product/List/Toolbar.php

În acest fişier este funcţia setCollection() unde se află următorul cod

if ($this->getCurrentOrder()) {
$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
}

pe care l-am înlocuit cu

if ($this->getCurrentOrder()) {
if($this->getCurrentOrder() != 'price')
$this->_collection->setOrder($this->getCurrentOrder(), $this->getCurrentDirection());
else
$this->_collection->getSelect()->order(array('COALESCE(`e`.`special_price`,`price_index`.`min_price`) '.$this->getCurrentDirection()));
}

aici verific dacă parametrul get ‘order’ are valoarea ‘price’, adică dacă avem o ordonare după preţ. În caz afirmativ, înlocuiesc order by-ul implicit după preţul normal.

Links

Luna aceasta, JavaScript a împlinit 18 ani.

Traficul generat de boţi reprezintă 61.5% din tot traficul site-ului, potrivit unui studiu.

31% din veniturile Yahoo provin de la Microsoft. Compania plateşte Yahoo pentru folosirea motorului de căutare Bing.

20% din traficul global de internet reprezintă accesul de pe telefoanele mobile.

http://motherfuckingwebsite.com

Cele mai bune ţări în care poate trăi un developer.

Seturi de iconiţe gratuite.

Jumătate din calculatoare vândute în 2014 vor fi tablete.

Development: Mobile vs Desktop

550691_474824402538914_1505441917_n Acum mulţi ani navigarea pe internet se facea de pe un PC iar website-urile prezentau informaţii simple. Odată cu apariţia smartphone-urilor şi creşterea complexităţii site-urilor a apărut şi problema afişării conţinutului pe multitudinea de device-uri existente precum şi problema mărimii în kb a website-ului deci implicit a vitezei de încărcare.

Ca urmare se doreşte afişarea unui conţinut lightweight pe mobil şi a altuia pe desktop. Care ar fi soluţiile afişării unui conţinut diferit pe mobile sau desktop-uri?

Css Media Queries pentru a afişa diferit în funcţie de rezoluţie. E ok până la un punct. Mai nou, ultimele versiuni de iPhone si Samsung galaxy au rezoluţii peste 1000 px, aproximativ cât un monitor desktop, aşadar cum faci diferenţa dintre desktop şi mobil? (Câteva snippet-uri media queries pentru device-uri populare).

User Agent Sniffing, o metodă blamată de mulţi, se face în JS prin verificarea identificatorului celui care intră pe pagină. Ce faci dacă apare un nou telefon sau un nou browser cu un alt user agent?

Iată o listă cu rezoluţiile disponibile pe diferite terminale mobile. Dupa cum se observă, sunt o gramadă de rezoluţii, şi mai nou nu prea poţi face diferenţa dintre mobil şi desktop.

O soluţie 100% nu este. Ideal ar fi ca website-ul sa fie atât de bine optimizat astfel încât să nu fie nevoie de o versiune separată pentru mobile. Cam greu.

Câteva articole pe această temă:

PHP mysql_query() deprecated

php-logoAstazi am observat ca funcţia mysql_query(), extrem de folosită pentru interogari ale bazelor de date, va fi scoasă în versiunile viitoare de PHP. Odata cu lansarea PHP 5.5 acum o luna, mysql_query() & related sunt oficial ‘deprecated’ – link ce conţine câteva detalii despre lipsurile mysql_query in raspuns (un alt răspuns bun aici). Asadar, este descurajata folosirea acestei functii in viitor si inlocuirea ei in cod. O alternativa este accesul folosind PDO (PHP Data Objects), metoda care este explicata mai pe larg in acest articol.

Modificarile in PHP 5.5 se pot gasi aici.

Links 21.12.12

5000 retweet-uri pentru că a răspuns unui troll
Tom Anderson este co-fondator a reţelei de socializare MySpace, pe care a vândut-o acus câţiva ani primind o sumă frumuşică. Pe contul său de twitter postează rar nişte fotografii care primesc 5-15 retweet-uri dar când un troll l-a atacat, răspunsul lui Tom a primit 5000 de retweet-uri, iar atacatorul şi-a şters într-un final contul. Tom a continuat experimentul şi a observat că utilizatorilor le plac luatul la mişto sau certurile mai mult decât nişte banale poze sau tweet-uri neinteresante.

Întreaga poveste aici.

tomconvo

Mai multe formate de imagini pe web
Mărimea unei pagini web este dată în principal de imaginile prezente, acestea ocupând cel mai mult spaţiu şi generând automat cel mai mult trafic. Majoritatea imaginilor în momentul de faţă sunt JPG-uri, PNG-uri sau GIF-uri. Dar dacă s-ar introduce noi formate mult mai optimizate care să le înlocuiască pe cele existente? Iată un articol care tratează această idee.

2 lei pentru Discovery
RDS ieftineşte abonamentele după scoaterea din grilă a posturilor Discovery. link.
Comunicatul de presă RDS aici.

Building Faster Websites

La o conferinţă despre tehnologiile web organizată recent, mai mulţi specialişti au prezentat informaţii utile în materie de web development. Un angajat Google a dat share la un document ce conţine sfaturi despre optimizarea paginilor web. Documentul este defapt prezentarea de 3 ore pe care a susţinut-o la conferinţă.

Documentul se poate accesa aici.