Fork me on GitHub
#off-topic
<
2019-04-10
>
mloughlin09:04:20

2019 developer laptop recommendations?

Sasho09:04:41

MacBookPro or an Acer with Linux Mint. Or you want a really specific model?

👍 4
mloughlin09:04:21

The worry with MacBooks is their recent keyboards

4
solf09:04:23

Yeah, I had the previous (the good) MBP model a couple of years ago. I hated it. However I'm now in a place in life where I can't spend as much time customizing my linux, and out of the box a MBP might be more attractive than linux to me. How course it's a moot point now, since Apple decided to just fuck up their keyboards

4
Conor09:04:14

I put Linux on an XPS15, it works fine for me

💯 4
Alex09:04:52

The keyboards are very bad, and not having HDMI or USB ports hurts. (On the MBP)

Richard Smedley09:04:29

I have a ThinkPad X1C6 from work, which has a nice keyboard (and HDMI, USB, etc.) The GNU/Linux install involves a little fine tuning though, so to avoid that take a look at:https://puri.sm/products/librem-13/ or https://puri.sm/products/librem-15/ - beautifully made, and great attention to detail!

8
solf10:04:32

I have a Thinkpad T480S and a T460, both work very well with linux

8
solf10:04:44

although I selected apparently (pretty sure it's lenovo that fucked up my order) the wrong bluetooth card, I got one that has shitty linux drivers

solf10:04:11

As far as I know, aside choosing the intel wifi/bluetooth card on command, thinkpads should be pretty good compatibility wise

antonpaisov10:04:59

+ thinkpads are great and work well with linux, but lenovo is a really shitty company 🙂

Lennart Buit11:04:56

I must admit, I used to run linux on like thinkpads, but a MBP is a very nice developer machine because it just works^tm

Lennart Buit11:04:27

other vendors really need to figure out screens and touchpads soon, those of apple are currently in a class of their own

Carmine Casciato11:04:41

I would like to submit the P50 -> P52 Thinkpads for the extreme heavylifting capabilities. Have a very stable dual booting situation with it.

orestis11:04:44

MacBookPro with some other external keyboard? Obviously only feasible if you park it next it a big screen regularly.

agile_geek12:04:07

I have a 2018 Dell XPS13 (I prefer the smaller size as I travel a lot). The 2019 version is very similar but they've improved the web camera placement. I ordered it with Ubuntu preinstalled but I've since upgraded the version from 16.04 to 18.10

agile_geek12:04:36

I actually prefer the screen on my Dell to Macbooks!

antonpaisov12:04:13

I have 2018 MBP right now and it’s still shit, would much rather go with macmini or imac + maybe macbook air for travel

antonpaisov12:04:33

but they updated the macminis and airs 1 month after I bought my mbp

antonpaisov12:04:51

the keyboard is so bad, I don’t think I ever tried anything as awful + my CMD key is already sticky, even though I rarely use the keyboard. and that issue with the monitor wiring that will eventually break and you have to replace half the laptop to fix it is another cherry on top.

antonpaisov12:04:10

if you’re ok with Linux, avoid these shit-laptops

maleghast12:04:15

Another vote for the Dell XPS 13" Developer edition (i.e. comes with Ubuntu) - I bottomed the SSD and installed Arch; love it a lot.

Carmine Casciato13:04:55

@U1CUGRHT9 far cry from the usual Mac reliability/build quality. I don't know what's going on over there.

4
mpenet15:04:20

Happy xps13 user as well

agigao16:04:27

Bought power-beast Alienware last summer spent some time configuring, trying different distros and linux mint come out at the winner, nonetheless after spending 6 years with rMBP 15" it felt way much too basic and chopped of features that LAPTOP actually requires. Battery life, touchpad, some apps I do employ on a daily basis, font-rendering and so on, so many reason made me jump back to Apple and bought new rMBP 15". 1. Build quality - top-notch. 2. Screen - well calibrated, balanced and easy on eyes. 3. thin? - well here’s where apple did f*ck up: dirt is harder to get rid of at air intake, and also something got stuck between rubber and screen which I tried hard but couldn’t remove. 4. Ports? I bought one adapter to connect USBs and external monitor and I’m good, I didn’t find type-c connectors much of pita on the go though. 5. keyboard: I couldn’t hold from saying that Apple must go back to previous gen or at least release some Macbook Pro Classic with old damn keyboard! Touch-typing is awfully hard due to thin keys. It’s change for the sake of change. 6. Are there any alternatives? NO. As a package it’s still by far the best laptop money can buy. Tried everything at store, none comes closer. It’s like a super-hot girlfriend with some weirdo pieces of character, but there’s trade-off in every aspect of our lives)))

hipster coder17:04:46

I’ve had 3 major problems with Macbooks. But your choice depends on if you want to use linux or osx. Thinkpad/Lenovo supports Linux well. Dell does not. But Apple and Dell has removed hazard chemicals from their laptops when the plastics heat up. I like Apple because its less toxic. But their usb-c is a disaster. And the keyboard issues. Personally, I’d just build a mineral cooling setup next, and skip using a laptop. I’ve had Thinkpads, Dells, Apples and built my own towers.

💯 4
4
Lennart Buit17:04:09

USB-C, they were a really early on it. But the feel of having a nice USB-C monitor and just connecting one cable is really cool, for charging, for being an USB hub, for being a screen …

theeternalpulse02:04:29

I recently bought a Lenovo X1 carbon current gen. I love it. Upgraded from a dell xps 13. The body is noticably lighter, the larger screen is much more usable and without the glossy ultra hi-def screen it will last quite a bit longer on battery. The USB c charging is very versatile and I have several chargers that work for it that are more portable than the one that came with it. Also I installed Pop OS which works quite great with it OOTB

👌 4
vemv15:04:47

never thought I'd say this, but I use the MBP touchbar daily. The secret is in the Esc margin+padding 🙂 via BetterTouchTool

Lennart Buit15:04:40

keynote has great integration with the touchbar, that was the first actual usecase I found for it

vemv15:04:28

last time I presented sth was via a pdf embedded into emacs #madman

agigao16:04:30

Hi there, can you share your BTT config?

vemv16:04:21

Sure, I'll create a repo + DM you the link

gklijs16:04:23

I really like it for (un)locking but hardly use it for something else. It's maybe even more of a distraction like when IntelliJ changes something on it.

hipster coder17:04:58

are you using an external monitor?

Alex Miller (Clojure team)15:04:50

I'll have to try that. I loathe virtually every aspect of it.

benoit15:04:08

I don't own one but I can't imagine the keyboard to be usable without haptic feedback.

vemv15:04:43

it's actually haptic-capable, never tried it though

vemv15:04:54

I find looking at nw (as per my screenshot) more usable than touch-typing F10... it needs less memory

hipster coder16:04:40

I need someone to give me critical thinking feedback. I am solving an architecture problem today. The sign-in authentication system on a monolith crashed. 1 of my integration tests was too broad/general and didn’t catch an error. But there’s so many dependencies/libraries on the monolith, I almost need to rebuild the app from scratch. In order to find which dependency or change crashed the sign in system.

hipster coder16:04:37

should I just switch to using a micro service architecture? So I can rebuild the service from scratch when tests don’t catch a bug. My debugger tools aren’t working either. FYI… this isn’t specific to Clojure. Please respond in a thread if you have ideas.

gklijs17:04:37

I have kind of a similar situation with a legacy Java app. After months of almost no load it's used now and sometimes crashing. There where some nullpointers but that's unlikely to be the cause. As long as your on a JVM you could try setting the logging at something like trace (for the relevant namespace if you know). With clojure you could maybe try some things with a repl. I don't think rebuilding the architecture just to fix a bug (as it sounds to me) is efficient.

gklijs17:04:52

There are some caveats with logging. For example when working with SSL errors you sometimes need to set specific flags to see the logging you need.

hipster coder17:04:01

yes, I agree. This is frustrating because of using a monolith. I think turning on server debug level is good idea. Is your Java debugger not working?

hipster coder17:04:43

I want to make sure Clojure has outstanding debugger tools. Because this has been a real pain with this very popular framework. I’m not sure most of the community even uses a debugger because the 2 debuggers do not work.

gklijs17:04:47

In our case it just sometimes shuts down, like 2,3 times a day and we have no idea what triggers it. Also because the code is bad, end we're using VertX it's very easy for errors to get lost somewhere.

gklijs17:04:22

Could be, but unlikely since multiple instances go down at the same time. Because of vertX there's a bunch of JVM's running. I really hope it was the nullpointers after all.

hipster coder17:04:00

multiple server instances are crashing?

hipster coder17:04:50

that’s weird because that points to more of a systems problem… not sure if multiple instances would be doing the same exact stack trace?

hipster coder17:04:55

are they workers (instances) that are running the same distributed code?

gklijs17:04:12

Services are shared, also between machines, do if one service 'dies' it could trigger a restart in all.

hipster coder17:04:37

ya, they are sharing memory?

hipster coder17:04:08

ok, that makes more sense, explains a possible code problem

hipster coder17:04:29

did you write junit unit tests?

gklijs17:04:52

Yes, but total memory is enough. It might be the case some of the verticles have less memory.

gklijs17:04:43

We have taken over the project, coverage is poor, but everything seems to work.

hipster coder17:04:01

I know that’s 1 of the downsides of the JVM, uses a ton of memory compared to native code

hipster coder17:04:26

so I would always monitor memory if I was doing work on JVM

hipster coder17:04:30

it sounds like you solved your problem though 😄

jaide17:04:50

https://www.youtube.com/watch?v=BThkk5zv0DE brings up some valid concerns when using microservices. Ultimately it’s an explosion of complexity. Perhaps try polylith architecture? https://www.youtube.com/watch?v=Y3FfLq8QATY

👍 4
hipster coder17:04:59

yes, I am hesitant about adopting micro services, 100%. I do like the ideas that Clojure and Elixir promote where you can split out a monolith. But not really micro services.

hipster coder17:04:36

for example, elixir uses an umbrella library to share a project, several apps under 1 umbrella

gklijs17:04:22

You have component and like libraries for clojure. It makes it a lot easier to handle state and larger applications.

hipster coder17:04:31

versus downloading 1400+ libraries to build a hello world program? not naming names 😁

bob17:04:49

Side note: "Modernization" success involve more than just the technical issues. https://about.gitlab.com/2019/03/27/application-modernization-best-practices/

Daniel Hines18:04:44

Aren’t micoservices harder to debug? Everything is running in isolated, concurrent processes - it’s not nearly as easy to determine the order of events or set a break point and stop the world. If the problem is that everything is complected together, you could still decompose it into well-factored classes/modules/whatever, and unit test each of those separately.

👍 8
gklijs18:04:57

Some problems are definitely harder to debug, but when you have a memory leak, or strange errors causing the whole application to fail, it's a lot harder when it's a monolith.

lilactown17:04:45

I bound CAPS to ESC and never looked back

lilactown17:04:10

spacemacs but same-same 😛

respatialized17:04:36

I use evil-mode spacemacs too - the one thing I stole from xah-fly-keys (which i used for a bit but was too idiosyncratic) was remapping esc to alt-SPC

respatialized17:04:07

I think it suits the space-centric spacemacs commands really well

jaihindhreddy17:04:55

I mapped CAPS to ESC on tap and CTRL on hold. And never looked back 🙂 Used Karabiner elements if anyone's wondering.

👌 4
theeternalpulse02:04:58

just be careful on linux, hitting the caps lock key when first logging on (before it's had a change to be configured) will toggle the caps-lock key and I think you have to sign out and in to reset it

jaihindhreddy03:04:46

Oh yeah. I mapped another key combo to Caps Lock to get around this.

theeternalpulse05:04:08

care to share, I'm interested

akiroz17:04:29

I suddenly had this crazy idea while sitting in the toilet, wouldn't it be possible to use a SQL Database as a backend server by itself? I've been using postgres quite a bit at work and it actually has most of the things a typical web-app needs: - User Management and Authentication - Role-based authorization - Server-side functions - Fine-grained access control for all db objects (tables, functions, etc) - HTTP API - Database (duh) - Replica cluster support - Data backup tooling It's a perfect monolith!

🚽 12
jaide17:04:17

I’ve wondered that myself, but unfortunately I’m not experienced enough with any particular SQL technology to know how to leverage that. Plus, how much expertise would be required to develop and maintain it?

hipster coder17:04:24

that’s pretty much how a lot of new web apps are going, just 1 main db api app on the backend

akiroz17:04:31

Your whole backend team would only consists of DBAs 😂

jaide17:04:18

How would they work on it? It’s not like you could just have source files in a code repository. You would need something in place to load files and replace function definitions I would imagine.

akiroz17:04:16

And your whole backend would be written in SQL which could be a good or bad thing... postgres also supports C functions and recent versions of MySQL supports all sorts of crazy languages thanks to the GraalVM

akiroz17:04:40

@U8WFYMFRU I suppose you could have a docker image that loads all the functions on startup? I mean, that's exactly what clojure does when you load a namespace. not much difference I'd imagine

jaide17:04:33

That could work! Then what happens if you want to pull someone else’s code? Do you restart the whole thing and reload all the functions?

akiroz18:04:54

@U8WFYMFRU might need some hot-reload tooling like clojure 🙂 but restarting the whole db should be faster then restarting clojure's JVM

Mno18:04:07

Wouldn’t writing a database in clojure be the same thing but a nicer language?

Daniel Hines18:04:47

Or using Datomic Ions. Built for the purpose, plus they’ve worked out all the AWS devops-y stuff for you.

Daniel Hines18:04:14

Also, this isn’t quite the same as a database as a backend, but perhaps it’s even easier: https://www.prisma.io/

Daniel Hines18:04:37

Or, if you want something similar in a full Clojure stack, Hodur engine seems really cool.

akiroz18:04:39

@UGFL22X0Q but the thing I love about traditional databases is that they are highly optimized for performance and battle-tested throughout the years. (that, and I actually kinda like SQL for its concise syntax)

Mno18:04:45

I guess you have a point, but they are battle tested on very database specific things, and not necessarily programming related things. (this is a specialization vs generalization tradeoff I believe.)

akiroz18:04:27

Hmm true, I don't think there are many people writing their business logic in SQL 😄

Daniel Hines18:04:45

Err… that’s not quite true. T-SQL and PL SQL seem like the lingua franca of many big institutions. I can attest that “programming” as a discipline in higher-ed boils downs to gobs and gobs of SQL.

Daniel Hines18:04:18

If you want to argue those aren’t true SQL’s but extensions of it, that’s fair.

Mno18:04:22

(I honestly don’t know enough to refute that but, ) I could argue they aren’t particularly optimized for programming related things too, right?

Daniel Hines18:04:36

Well, they have functions, procedures, flow control… But they certainly aren’t ergonomic for imperative or functional programming.

hmaurer23:04:50

@U8QTB156K this is closer to the OP’s idea than Prisma: https://www.graphile.org/postgraphile/

4
hmaurer23:04:18

I wanted to build something similar using a full-clojure stack but… haven’t found the time yet

Daniel Hines23:04:51

😍 That’s really cool.

hmaurer23:04:04

Yeah it’s a really good project 🙂 I have used it in the past and it made me learn a lot about PostgreSQL.

hmaurer04:04:31

@U068R74HE ah yep! postgraphile (which I linked) is actually inspired by postgrest

ericstewart04:04:43

yeah, I think I knew that. just a matter of rest vs. graphql approach. I used postgrest in the prototyping phase of a project and there was a lot to like, so I’m sure postgraphile has similar benefit

slipset11:04:38

I seem to remember that using an Oracle database as a webserver for dynamic content was the sh!t (according to Oracle) back in 96/97…

henrik11:04:08

All great ideas come via some connection to water: in the shower, in the bathtub, on the loo, while drinking tea…

ackerleytng22:04:20

with these kinds of software, like perhaps prisma, how would you be able to handle authorization and authentication - like some users can only do certain actions on a db?

hmaurer11:04:51

@U8P40TFSR Postgraphile uses postgresql’s permissions to handle that

ackerleytng11:04:31

I'm super excited to use these database wrappers, but sometimes i'm also concerned about exposing too much of the way the database is structured, since these wrappers are really thin. Has anyone found their app getting locked in because the frontend ends up getting too coupled to the way the database is structured?

Daniel Hines20:04:04

What do people typically do to log in to npm from a script? I’m using powershell.

hipster coder01:04:32

did you receive an answer to your question? I usually think of npm, node package manager, as a tool to install node js libraries

Daniel Hines01:04:29

Yeah, the trick turned out to be that you can pre-generate a token on the website and then run npm config set "//registry.npmjs.org/:_authToken" $token

hmaurer23:04:59

@akiroz you should check out https://www.graphile.org/postgraphile/ ; I have used it on a personal project