Starting on the website for ✈ now, I will log the full development right here in this thread 👇 airlinelist.co
I always start like this in my code editor, just raw HTML code, no styling (yet), to get the basic functionality down
I'm also adding a BOOK FLIGHT option, which gets the flights from an API like @kiwicom247 and rates each flight by service, comfort, on-time and safety
Now I need to get the data from the Google sheet I made into my SQLite database, for that I use this script (I took it from Nomad List's code), it goes over the sheet and inserts all data into the db docs.google.com/spreadsheets/d…
I've added database-style column names in the sheet, these have to correspond with the SQLite table structure I'm gonna make now...
I use phpLiteAdmin, a light-weight editor for SQLite databases that runs on PHP. Let's make airlines.db!
Inside airlines.db I make the table airlines (I always use one table per .db file to keep it simple)
Here's my airlines table structure, I can always add/edit later so it doesn't have to be perfect immediately. I use "epoch" as a seconds since 1970-01-01 (epoch) field to save when it's last updated
Here's my airlines table structure, I can always add/edit later so it doesn't have to be perfect immediately. I use "epoch" as a seconds since 1970-01-01 (epoch) field to save when it's last updated
Here's the code which puts it into SQLite, it's a bit ugly, but makes sure every value I want goes in there. I can make it dynamic later, but for now this is easiest to make.
Yay, it worked 😙 the spreadsheet data is now in a SQLite db called airlines.db, now I will try access it from the site...
To test if it worked I load the DB on /index.php and do
echo json_encode($airlines);
This prints the data into JSON, so I can see if it's readable by my site.
I can now start putting in a <table>
Now I put it in a foreach($airlines as $airline) loop inside <table> HTML, here's how it looks if you open it
I made all this on my laptop, so now I want to deploy it to so you can see it too.
I go to @namecheap to DNS and add my server's IP as an A/AA record. It was a URL redirect before to the Google spreadsheet, that ends now. airlinelist.co
Now I have to wait for an hour for the name servers to update. Meanwhile I've added some styling to the buttons, and made them toggle-able with jQuery.
I'll go over all the filter buttons to find which one are pressed and then do a call to the server to filter airlines!
^ the color of the button I picked from the ✈️ airplane emoji on MacOS. Emojis are a nice way to find colors ^_^
I did some more <style>'ing so now it looks like this. I centered the page by adding a <div class="container"> which wraps around all the elements. It's set to max-width:1000px; and centered with margin:0 auto;
Now for some logic. I want the filters to actually do something. So I define each filter inside the button with 3 data tags:
data-key
data-operator
data-value
For ex. safe airline should be
"safety_score"
greater-than
3
(where 3 is out of 5)
Here's the JS code for it. It collects each filter's data attributes key, operator and value. Puts them in a data array. This array we will then AJAX to the server where PHP receives it, filters, and sends back the airlines.
Yay! It works. JS collects the filters successfully, sends them as AJAX to server and PHP reads the filters accurately.
Meanwhile the DNS has propagated. So now we can get a @letsencrypt https SSL certificate. I use an app called CERTBOT for it. If you type CERTBOT CERTONLY it lets you authorize a server. I had to kill my NGINX server for it (I know I'm noob) when doing it for a 30 secs. But works
On the server, I edit /etc/nginx/sites/airlinelist.co, which is my virtual host config file for NGINX. It lets the server know I want to have a website with and the server should respond with files from /srv/http/airlinelist.co like index.php! airlinelist.co
It's not opening here yet BUT it is on the server. So it can show up any time now. DNS can takes hours, sometimes days to update on all people's providers.
While we're waiting for that, I've made the filters work. Every click is an AJAX request with the active filters (see tweets above), and the PHP sends the airlines as <tr><td></td></tr> table rows back! JS then puts that in the <table><tbody>. Very simple.
Okay it seems to be working for some people: try it 👉 airlinelist.co
Added a disclaimer so I don't get sued by airlines + region filters airlinelist.co
• • •
Missing some Tweet in this thread? You can try to
force a refresh
- very cold bedroom 18-20°C / 64-68°F (colder better)
- 9kg weighted blanket by CURA (adjust to your bodyweight)
- separate duvet from gf (I do this for years this might be the biggest sleep improvement)
- 3M ear plugs (I tried Ohropax wax but they only half as silent)
- eye mask
- red LED lights that go on before sleep in bedroom
- 0.2mg melatonin 45min before sleep then dim the lights (melatonin is ALWAYS sold in too high dose like
3mg, it should be 10x less or it doesn't work!)
- 4x per week cardio + strength training, my resting heart rate (RHR) is 52
- mostly clean diet of meat + vegetables + fruit + black coffee + sparkling water with lemon (and sometimes cheat with dark choco), not a lot of carbs (almost never pasta or regular potatoes for ex but sometimes rice or sweet potatoes)
- healthy biomarkers and body mass index, if you're overweight it WILL affect your sleep usually with sleep apnea etc
- read phone before sleep but with Smart Invert on and my custom super dark hack using iOS Zoom (but it doesn't zoom it just decreases brightness even further), then read Kindle a bit to really make me sleepy 😂
- we try avoid eating after 10pm, and we sleep around midnight to 1am, especially sweet stuff like fruits seem to have a bad effect on my sleep
- also DO not drink 2-3 hours before sleep or you wake up to go pee (which is more common when you get older)
- disclaimer: no kids (yet) so easy talking
Other things:
Temperature seems to be the biggest impact for me, if it gets too hot I wake up and once I wake up my brain gets active and it's sometimes hard to fall asleep. I already had this years ago and thought it was stress but even if I have life stuff going along I can sleep solid 8h without waking up if it's just a very cold bedroom.
If it's really super cold like 17-18°C / 62-64°FI just never wake up
For that you need a thick duvet though and your gf needs thicker cause women are generally colder
If you're culturally used to sleeping hotter, consider changing that because it seems to benefit almost anyone to sleep colder! An AC will do the trick.
As @bryan_johnson tells everyone, sleep is the most important thing to prioritize for your health
Good sleep benefits all your health markers, your immune system and so stops you from getting sick. Even cleaning your brain of plaque to avoid dementia when you're older
I always forget stuff but yes
- exterior electric black out blinds so it's completely dark except for a tiny bathroom light
The period from age 12 to 30 in Jesus life is somehow not described anywhere
He just showed up at 30 and did his thing
Most concepts Jesus preached seem to overlap strongly with Buddhism and even more with Hinduism like compassion, love your neighbors and enemies, detachment from materialism, treat others how you'd like to be treated (karma) etc
What's interesting is that Islam itself is a 500 year later fork of Christianity and Jesus is a non-holy prophet in the Qu'ran
So if that's true and you keep going back the origins of most religions may just be Hinduism and Judaism
So last year @Wayfair, an $8B company, launched their own AI interior design tool
This week someone at Wayfair asked me to cancel their subscription of , which is my AI interior design tool launched 2 years ago
I was confused why would they sign up to it if they have their own? Well, because they signed up to it before they had their own and used it to build their version of it! 😂
They had 8 different accounts on Interior AI that ran for months 🤯
I learnt a bit about competitive spying today!
Told ya the big companies were checking what indie hackers did, that was my entire point when I said "indie hacking is dead", we're part of the big market now where billion dollar companies are INSIDE our apps!InteriorAI.com
If I did competitive spying I'd at least use a different domain name though, not my own company @wayfair.com
P.S. it's all good, I think it's even legal, just kinda funny a big billion dollar company is INSIDE MY APPS!
I test parameters on Photo AI on a % of photos taken
Then I check what % of photos are ❤️ favorited
Based on that I can figure out what parameters is better on 700,000 photos taken per month
But sometimes you get 1 or 2 users ❤️ favoriting lots of photos with one specific parameter which affects the data and makes one parameter choice come out as a winner when actually it's just a few users doing it
Any stat solution for this?
Right now my SQL is smth like this
SELECT upscale_strength,count(upscale_strength) as cnt FROM photos WHERE upscale_strength IS NOT NULL AND (saved IS NOT NULL) GROUP BY upscale_strength ORDER BY cnt DESC LIMIT 10
I can add count(distinct(user_id)) for ex:
SELECT upscale_strength,count(upscale_strength) as cnt,count(distinct(user_id)) FROM photos WHERE (saved IS NOT NULL) GROUP BY upscale_strength ORDER BY cnt DESC LIMIT 10