This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2019-04-10
Channels
- # announcements (4)
- # beginners (116)
- # boot (4)
- # calva (63)
- # cider (8)
- # clara (20)
- # cljdoc (10)
- # cljsrn (69)
- # clojure (115)
- # clojure-austin (1)
- # clojure-dev (4)
- # clojure-finland (1)
- # clojure-italy (3)
- # clojure-nl (6)
- # clojure-russia (10)
- # clojure-uk (84)
- # clojurescript (28)
- # cursive (14)
- # data-science (1)
- # datascript (1)
- # datomic (11)
- # duct (3)
- # emacs (13)
- # figwheel-main (11)
- # fulcro (4)
- # graphql (6)
- # jackdaw (2)
- # jobs (23)
- # jobs-rus (1)
- # kaocha (11)
- # lein-figwheel (13)
- # leiningen (55)
- # luminus (14)
- # lumo (22)
- # off-topic (121)
- # pathom (19)
- # re-frame (6)
- # reagent (3)
- # reitit (22)
- # remote-jobs (10)
- # ring-swagger (1)
- # shadow-cljs (67)
- # slack-help (5)
- # spacemacs (1)
- # sql (18)
- # vim (28)
- # yada (2)
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
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!
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
As far as I know, aside choosing the intel wifi/bluetooth card on command, thinkpads should be pretty good compatibility wise
+ thinkpads are great and work well with linux, but lenovo is a really shitty company 🙂
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
other vendors really need to figure out screens and touchpads soon, those of apple are currently in a class of their own
I would like to submit the P50 -> P52 Thinkpads for the extreme heavylifting capabilities. Have a very stable dual booting situation with it.
MacBookPro with some other external keyboard? Obviously only feasible if you park it next it a big screen regularly.
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
I actually prefer the screen on my Dell to Macbooks!
I have 2018 MBP right now and it’s still shit, would much rather go with macmini or imac + maybe macbook air for travel
but they updated the macminis and airs 1 month after I bought my mbp
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.
if you’re ok with Linux, avoid these shit-laptops
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.
@U1CUGRHT9 far cry from the usual Mac reliability/build quality. I don't know what's going on over there.
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)))
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.
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 …
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
never thought I'd say this, but I use the MBP touchbar daily. The secret is in the Esc
margin+padding 🙂
via BetterTouchTool
keynote has great integration with the touchbar, that was the first actual usecase I found for it
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.
are you using an external monitor?
I'll have to try that. I loathe virtually every aspect of it.
I don't own one but I can't imagine the keyboard to be usable without haptic feedback.
I find looking at nw
(as per my screenshot) more usable than touch-typing F10
... it needs less memory
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.
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.
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.
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.
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?
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.
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.
memory leak?
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.
multiple server instances are crashing?
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?
are they workers (instances) that are running the same distributed code?
Services are shared, also between machines, do if one service 'dies' it could trigger a restart in all.
ya, they are sharing memory?
ok, that makes more sense, explains a possible code problem
did you write junit unit tests?
Yes, but total memory is enough. It might be the case some of the verticles have less memory.
I know that’s 1 of the downsides of the JVM, uses a ton of memory compared to native code
so I would always monitor memory if I was doing work on JVM
it sounds like you solved your problem though 😄
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
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.
for example, elixir uses an umbrella library to share a project, several apps under 1 umbrella
You have component and like libraries for clojure. It makes it a lot easier to handle state and larger applications.
versus downloading 1400+ libraries to build a hello world program? not naming names 😁
Side note: "Modernization" success involve more than just the technical issues. https://about.gitlab.com/2019/03/27/application-modernization-best-practices/
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.
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.
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
I think it suits the space-centric spacemacs commands really well
I mapped CAPS to ESC on tap and CTRL on hold. And never looked back 🙂 Used Karabiner elements if anyone's wondering.
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
Oh yeah. I mapped another key combo to Caps Lock to get around this.
care to share, I'm interested
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!
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?
that’s pretty much how a lot of new web apps are going, just 1 main db api app on the backend
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.
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
@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
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?
@U8WFYMFRU might need some hot-reload tooling like clojure 🙂 but restarting the whole db should be faster then restarting clojure's JVM
Or using Datomic Ions. Built for the purpose, plus they’ve worked out all the AWS devops-y stuff for you.
Also, this isn’t quite the same as a database as a backend, but perhaps it’s even easier: https://www.prisma.io/
Or, if you want something similar in a full Clojure stack, Hodur engine seems really cool.
@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)
Check this out: https://blog.hasura.io/architecture-of-a-high-performance-graphql-to-sql-server-58d9944b8a87/
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.)
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.
If you want to argue those aren’t true SQL’s but extensions of it, that’s fair.
(I honestly don’t know enough to refute that but, ) I could argue they aren’t particularly optimized for programming related things too, right?
Well, they have functions, procedures, flow control… But they certainly aren’t ergonomic for imperative or functional programming.
So, sure.
@U8QTB156K this is closer to the OP’s idea than Prisma: https://www.graphile.org/postgraphile/
I wanted to build something similar using a full-clojure stack but… haven’t found the time yet
😍 That’s really cool.
Yeah it’s a really good project 🙂 I have used it in the past and it made me learn a lot about PostgreSQL.
https://postgrest.org does this as well
@U068R74HE ah yep! postgraphile (which I linked) is actually inspired by postgrest
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
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…
All great ideas come via some connection to water: in the shower, in the bathtub, on the loo, while drinking tea…
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?
@U8P40TFSR Postgraphile uses postgresql’s permissions to handle that
also see this tweet 🙂 https://twitter.com/lukaseder/status/722696982385528836
Awesome!
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?
What do people typically do to log in to npm from a script? I’m using powershell.
did you receive an answer to your question? I usually think of npm, node package manager, as a tool to install node js libraries
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
@akiroz you should check out https://www.graphile.org/postgraphile/ ; I have used it on a personal project