HN user

dliff

96 karma
Posts4
Comments34
View on HN

Nodu is a minimalist personal development app that helps you stay focused on long-term goals, day by day. Every morning you decide what you will do and what you will not do by swiping away objectives and only keeping ones you want to focus on for the day. Throughout the day you can mark items as complete and check on what objectives remain.

I'm surprised to see Kotlin in your list. Google has stated they are increasingly moving Android development to a Kotlin-first ideology. New official libraries produced by Google for Android are designed with Kotlin chiefly in mind, so it may provide significant benefits to support, community, and documentation.

Considering the popularity of the Android platform and Google's control over it, I don't think it is a bad idea to develop an Android app in Kotlin. According to Google, their Maps, Home, Play, Drive, and Messages apps are all built in Kotlin, and my personal experience is that Android developers like and prefer Kotlin.

Author here. I have sent/received 643,576 messages since 2009 which totaled 590MB. To my knowledge media is never stored in the SQL database (for iMessage).

TerraStride, Inc | Portland, OR / Remote | Full-time | Android Engineer

TerraStride is an established Portland startup making web and mobile mapping applications for outdoor enthusiasts. We're looking for an Android developer with experience developing and launching at least one high quality app. This Android app developer will work with our team of talented engineers to design, build, and improve our advanced mobile mapping application. A successful candidate should have a strong sense of product ownership and be comfortable working semi-autonomously as an engineer.

Email careers (AT) terrastride (dot) com

While I had a positive experience with the Uber app software-wise (app functioned seamlessly landing in Mumbai from U.S.A.), Uber as a service was not really comparable to what it is like in the U.S. and developed W. European countries. I got the sense that it was more of a strictly ride hailing / request service, not much accountability required from the driver. Often had > 3 drivers cancel after 10-15 minutes waiting before actually getting a ride. That being said, it was still a hugely valuable service to have in India as a foreigner.

I've gone back and forth on this in respect to database tables and ultimately prefer singular. If the table is named "profile", I think it's obvious that it can store more than 1 profile, since... well it's a table and has rows.

I was in Death Valley last weekend. Drove there from SF with Model Y, ended up renting an ICE car to explore the park, especially since we were staying 1.5 hours from the center of the park.

I saw several Teslas around the park, and I think it's doable if you only want to visit say 1 or 2 locations, but without a Supercharger in the middle of the park, you will be limited and won't have the flexibility to see everything.

The resort in the middle of the park has 4 J1772 chargers, which would help if you were staying in the park overnight, but we were simply doing day trips.

I interviewed at Discogs about 3 years ago (after discovering they were local to me in Portland, OR). Seemed like a great group of people working there!

Yeah, wasn't trying to say this was an example of graph. Maybe it is slightly outside what would be considered "standard" relational DB use case? My impression of recursive CTE's in RDBMS is that if you need speed or any more advanced graph-like features, you should move to an actual graph db. So far I haven't taken on any projects that warranted that, though it does interest me.

Either way my intention here was to simply provide an example of a real-world recursive CTE use case.

I worked for Best Buy (Geek Squad) as well, about 12 years ago. I had the same experience. Even if they were going to pay me for the time, it felt wrong that they told me I was not able to leave. At times you could be waiting for 15 minutes. It was my first job at 16 years of age, and I didn't have the care or confidence to correct the time punch. At my store they would have to approve time punch modifications, so it would have been obvious if you did that every night.

The one person who did get fired for stealing was simply grabbing laptops, removing them from their box, and casually walking out with them.

TerraStride | Android Engineer | Fulltime | U.S. Remote + Portland, OR | http://terrastride.com

TerraStride is an established Portland startup making web and mobile mapping applications for outdoor enthusiasts. We're looking for an Android developer with experience developing and launching at least one high quality app. This Android app developer will work with our team of talented engineers to design, build, and improve our advanced mobile mapping application. A successful candidate should have a strong sense of product ownership and be comfortable working semi-autonomously as an engineer.

Email careers (AT) terrastride (dot) com

The SDK is crashing. It's likely crashing because the service changed, but it's causing actual crashes on iOS and Android devices which rely on the SDK.

I experienced this long before I ever saw it on the internet. For me it's especially bad if there is a hole and something small is stuck in it. Even as I type this I remember a specific object I used to see often and I feel my face flush. It's a strangely uncomfortable experience that I can physically feel in my "bones" as they say. I wouldn't say it's a phobia in the sense that I am afraid of it, and I don't often experience it, but it's quite disturbing. An eerie, undefinable discomfort.

Gatekeeping may not be the best word, and I think you misunderstood what I was trying to say. OP is not merely pointing out a deficiency: they are suggesting that there is a decline in software quality because of these non-CS people entering the market. Pointing out a deficiency and blaming said deficiencies for a trend of bad software quality are two very different claims. It suggests that one cannot produce good software without a CS background, with which I disagree as an absolute statement. That may be a slight leap, but I think OP made a pretty broad suggestion.

I haven't and wouldn't suggest that people be moved to a position with responsibilities over their head If you want to move up and you need to learn more, of course you need to find a way to learn the required concepts. I did this and continue to do it.

My point about bootcamps is most people who finish them aren't out there getting jobs that require knowledge of CPU pipelines. If that IS happening, someone is really bad at hiring.

Yes, clearly I am not advocating that anyone of any experience should be allowed to do any job. OP is positing that there is a decline in software quality because of developers who don't know those CS concepts. I don't agree.

If you're saying you wouldn't hire a developer who didn't know those concepts in your domain, OK.. I don't know what your domain is. Software is a huge field as I'm sure you know and there are many domains in which the requirements include understanding these CS concepts.

If you're saying you wouldn't hire a developer who didn't understand CPU pipelines in ANY software engineering context, I strongly believe you would be missing out on some highly skilled & capable people.

No, I don't think the quality has gone down. I think this outlook is a way of gatekeeping engineers who don't have a formal CS background. I happen to be one of them.

Most people who go to a bootcamp (I did not, but have hired a developer who did) do not end up working in a role that requires understanding of the 5 topics above you mentioned, with the exception of cache and maybe algorithms. It's just not what most bootcamps are targeted for.

I have seen a lot of terrible code from both sides, and don't believe the quality of the code to be a function of the developer's level of formal education.

BZFlag 7 years ago

I believe this was my first time learning to compile a C++ project. This was 13 years ago; I was 14 years old. Great memories playing with others, chatting, building maps.

I was recently in Zurich and entered a small shop that was honor system. Scan and pay for your own items, no staff. Small food items, drinks, wine available.

Might be different since there could be cameras or some other form of accountability, but I found it interesting.

I have used Postgres with both Django and Flask quite a bit now.

Since you're probably used to dealing with and migrating your tables manually, I would keep custom SQL for all your complex operations, and use SQLAlchemy for doing basic insert/update/select. Django also has an "unmanaged" mode where you can create a model and it will avoid trying to create a migration to create the table.

Of course, you have to manually update the model if you manually change your DDL.

Watch out for differences on how you are serializing data from Django/SQLAlchemy models vs. raw dicts from PsychoPG.

I like to organize my SQL by keeping each query in a separate .sql file and writing a little wrapper that fetches the files (+1 for caching it) and then executing it. I'm not a fan of lots of inline SQL mixed with Python.

Overall I think it's a great + powerful setup!

I agree. Typical users aren't going to complain "hey this app doesn't feel native" or even know what that means!

However, they will likely find it harder to use without an explanation why. If most of the apps a user uses follow the guidelines of Android/iOS, and they are primarily a user of one platform, and your app doesn't follow either, it seems obvious that they won't be able to use their built-up knowledge of how apps work in general to navigate your app.

Most people I know, including myself, have found it initially a little more difficult to navigate around apps from the platform other than the one we are used to using daily.

Apps that insist on creating the same UI on both platforms can be a mixed bag, IMO. Sometimes executed well, sometimes poorly. Because of this, I usually prefer apps that separately comply with each platform.

I am however interested in playing around with Flutter soon!

RN definitely feels native... assuming the developers utilized the built-in components properly. RN is an actual native component whose state is backed by a JS bridge.

There certainly are poorly written / optimized RN apps. There are also apps that due to their nature/goal shouldn't be RN even at an early stage. (Startup, navigation, threading, network issues for one). However, I would argue that a properly written RN app, within the confines of the problem RN attempts to solve, does not feel heavy and is actually indistinguishable from native.

From my experience I would surmise a lot of badly performing RN apps stem from poorly written JavaScript, especially bad state management (lots of devs who perhaps have only written web JS in the past?).

I currently work on a project that is based on Django ORM. Before this, I almost exclusively hand-wrote all SQL.

I think you can quickly outgrow the limits of ORM... at least Django's. Whether it's needlessly fighting with ORM to get joins correct, ORM deciding it's going to loop through n records instead of joining on DB server, simply doing complex aggregates that ORM won't support, or doing DB-specific stuff. Postgres has some amazingly powerful features that many don't know about because they only learn ORM.

My experience: It can end up being double work because you spend an hour getting the query to work with ORM. Then, a week later, the requirements change and you have to add 1 thing for which it's just not feasible to use ORM. Then you're rewriting it completely with hand written SQL.

ORM seems really popular with web/mobile api now, and hand-in-hand a trend of not learning SQL. I think it's too bad as it creates another layer or separation to knowing how your app truly works. It's a layer that is still important to be familiar with, especially as a project grows.

Using custom SQL with Django has been a mixed bag for me. If you dump JSON from your query, some fields won't be consistently formatted with endpoints that still use the ORM. You can "load" the result into a Django model, but it can be difficult to make it work if you have custom fields you're returning from your custom SQL since Django doesn't know how to format them. (maybe there is a solution to this I haven't found?).

I like the approach of using a basic query-builder for routine insert/update and maybe even select.