The best Hacker News stories from Show from the past week

Go back

Latest posts:

Show HN: Khoj – Chat offline with your second brain using Llama 2

Hi folks, we're Debanjum and Saba. We created Khoj as a hobby project 2+ years ago because: (1) Search on the desktop sucked; we just had keyword search on the desktop vs google for the internet; and (2) Natural language search models had become good and easy to run on consumer hardware by this point.<p>Once we made Khoj search incremental, I completely stopped using the default incremental search (C-s) in Emacs. Since then Khoj has grown to support more content types, deeper integrations and chat (using ChatGPT). With Llama 2 released last week, chat models are finally good and easy enough to use on consumer hardware for the chat with docs scenario.<p>Khoj is a desktop application to search and chat with your personal notes, documents and images. It is accessible from within Emacs, Obsidian or your Web browser. It works with org-mode, markdown, pdf, jpeg files and notion, github repositories. It is open-source and can work without internet access (e.g on a plane).<p>Our chat feature allows you to extract answers and create content from your existing knowledge base. Example: <i>"What was that book Trillian mentioned at Zaphod's birthday last week"</i>. We personally use the chat feature regularly to find links, names and addresses (especially on mobile) and collate content across multiple, messy notes. It works online or offline: you can chat without internet using Llama 2 or with internet using GPT3.5+ depending on your requirements.<p>Our search feature lets you quickly find relevant notes, documents or images using natural language. It does not use the internet. Example: Search for <i>"bought flowers at grocery store"</i> will find notes about <i>"roses at wholefoods"</i>.<p>Quickstart:<p><pre><code> pip install khoj-assistant && khoj </code></pre> See <a href="https://docs.khoj.dev/#/setup">https://docs.khoj.dev/#/setup</a> for detailed instructions<p>We also have desktop apps (in beta) at <a href="https://github.com/khoj-ai/khoj/releases/tag/0.10.0">https://github.com/khoj-ai/khoj/releases/tag/0.10.0</a> if you want to try them out.<p>Please do try out Khoj and let us know if it works for your use cases? <i>Looking forward to the feedback!</i>

Show HN: San Francisco Compute – 512 H100s at <$2/hr for research and startups

Hey folks! We're Alex and Evan, and we're working on putting together a 512 H100 compute cluster for startups and researchers to train large generative models on. - it runs at the lowest possible margins (<$2.00/hr per H100) - designed for bursty training runs, so you can take say 128 H100s for a week - you don’t need to commit to multiple years of compute or pay for a year upfront<p>Big labs like OpenAI and Deepmind have big clusters that support this kind of bursty allocation for their researchers, but startups so far have had to get very small clusters on very long term contracts, wait months of lead time, and try to keep them busy all the time.<p>Our goal is to make it about 10-20x cheaper to do an AI startup than it is right now. Stable Diffusion only costs about $100k to train -- in theory every YC company could get up to that scale. It's just that no cloud provider in the world will give you $100k of compute for just a couple weeks, so startups have to raise 20x that much to buy a whole year of compute.<p>Once the cluster is online, we're going to be pretty much the only option for startups to do big training runs like that on.

Show HN: San Francisco Compute – 512 H100s at <$2/hr for research and startups

Hey folks! We're Alex and Evan, and we're working on putting together a 512 H100 compute cluster for startups and researchers to train large generative models on. - it runs at the lowest possible margins (<$2.00/hr per H100) - designed for bursty training runs, so you can take say 128 H100s for a week - you don’t need to commit to multiple years of compute or pay for a year upfront<p>Big labs like OpenAI and Deepmind have big clusters that support this kind of bursty allocation for their researchers, but startups so far have had to get very small clusters on very long term contracts, wait months of lead time, and try to keep them busy all the time.<p>Our goal is to make it about 10-20x cheaper to do an AI startup than it is right now. Stable Diffusion only costs about $100k to train -- in theory every YC company could get up to that scale. It's just that no cloud provider in the world will give you $100k of compute for just a couple weeks, so startups have to raise 20x that much to buy a whole year of compute.<p>Once the cluster is online, we're going to be pretty much the only option for startups to do big training runs like that on.

Show HN: San Francisco Compute – 512 H100s at <$2/hr for research and startups

Hey folks! We're Alex and Evan, and we're working on putting together a 512 H100 compute cluster for startups and researchers to train large generative models on. - it runs at the lowest possible margins (<$2.00/hr per H100) - designed for bursty training runs, so you can take say 128 H100s for a week - you don’t need to commit to multiple years of compute or pay for a year upfront<p>Big labs like OpenAI and Deepmind have big clusters that support this kind of bursty allocation for their researchers, but startups so far have had to get very small clusters on very long term contracts, wait months of lead time, and try to keep them busy all the time.<p>Our goal is to make it about 10-20x cheaper to do an AI startup than it is right now. Stable Diffusion only costs about $100k to train -- in theory every YC company could get up to that scale. It's just that no cloud provider in the world will give you $100k of compute for just a couple weeks, so startups have to raise 20x that much to buy a whole year of compute.<p>Once the cluster is online, we're going to be pretty much the only option for startups to do big training runs like that on.

Show HN: Gogit – Just enough Git (in Go) to push itself to GitHub

Show HN: Continue – Open-source coding autopilot

Hi HN, we’re Nate and Ty, co-founders of Continue, an open-source autopilot for software development built to be deeply customizable and continuously learn from development data. It consists of an extended language server and (to start) a VS Code extension.<p>Our GitHub is <a href="https://github.com/continuedev/continue">https://github.com/continuedev/continue</a>. You can watch a demo of Continue and download the extension at <a href="https://continue.dev">https://continue.dev</a><p>— — —<p>A growing number of developers are replacing Google + Stack Overflow with Large Language Models (LLMs) as their primary approach to get help, similar to how developers previously replaced reference manuals with Google + Stack Overflow.<p>However, existing LLM developer tools are cumbersome black boxes. Developers are stuck copy/pasting from ChatGPT and guessing what context Copilot uses to make a suggestion. As we use these products, we expose how we build software and give implicit feedback that is used to improve their LLMs, yet we don’t benefit from this data nor get to keep it.<p>The solution is to give developers what they need: <i>transparency, hackability,</i> and <i>control</i>. Every one of us should be able to reason about what’s going on, tinker, and have control over our own development data. This is why we created Continue.<p>— — —<p>At its most basic, Continue removes the need for copy/pasting from ChatGPT—instead, you collect context by highlighting and then ask questions in the sidebar or have an edit streamed directly to your editor.<p>But Continue also provides powerful tools for managing context. For example, type ‘@issue’ to quickly reference a GitHub issue as you are prompting the LLM, ‘@README.md’ to reference such a file, or ‘@google’ to include the results of a Google search.<p>And there’s a ton of room for further customization. Today, you can write your own<p>- slash commands (e.g. ‘/commit’ to write a summary and commit message for staged changes, ‘/docs’ to grab the contents of a file and update documentation pages that depend on it, ‘/ticket’ to generate a full-featured ticket with relevant files and high-level instructions from a short description)<p>- context sources (e.g. GitHub issues, Jira, local files, StackOverflow, documentation pages)<p>- templated system message (e.g. “Always give maximally concise answers. Adhere to the following style guide whenever writing code: {{ /Users/nate/repo/styleguide.md }}”)<p>- tools (e.g. add a file, run unit tests, build and watch for errors)<p>- policies (e.g. define a goal-oriented agent that works in a write code, run code, read errors, fix code, repeat loop)<p>Continue works with any LLM, including local models using ggml or open-source models hosted on your own cloud infrastructure, allowing you to remain 100% private. While OpenAI and Anthropic perform best today, we are excited to support the progress of open-source as it catches up (<a href="https://continue.dev/docs/customization#change-the-default-llm">https://continue.dev/docs/customization#change-the-default-l...</a>).<p>When you use Continue, you automatically collect data on how you build software. By default, this development data is saved to `.continue/dev_data` on your local machine. When combined with the code that you ultimately commit, it can be used to improve the LLM that you or your team use (if you allow).<p>You can read more about how development data is generated as a byproduct of LLM-aided development and why we believe that you should start collecting it now: <a href="https://medium.com/@continuedev/its-time-to-collect-data-on-how-you-build-software-197d12a020d5" rel="nofollow noreferrer">https://medium.com/@continuedev/its-time-to-collect-data-on-...</a><p>Continue has an Apache 2.0 license. We plan to make money by offering organizations a paid development data engine—a continuous feedback loop that ensures the LLMs always have fresh information and code in their preferred style.<p>— — —<p>We’d love for you to try out Continue and give us feedback! Let us know what you think in the comments : )

Show HN: Continue – Open-source coding autopilot

Hi HN, we’re Nate and Ty, co-founders of Continue, an open-source autopilot for software development built to be deeply customizable and continuously learn from development data. It consists of an extended language server and (to start) a VS Code extension.<p>Our GitHub is <a href="https://github.com/continuedev/continue">https://github.com/continuedev/continue</a>. You can watch a demo of Continue and download the extension at <a href="https://continue.dev">https://continue.dev</a><p>— — —<p>A growing number of developers are replacing Google + Stack Overflow with Large Language Models (LLMs) as their primary approach to get help, similar to how developers previously replaced reference manuals with Google + Stack Overflow.<p>However, existing LLM developer tools are cumbersome black boxes. Developers are stuck copy/pasting from ChatGPT and guessing what context Copilot uses to make a suggestion. As we use these products, we expose how we build software and give implicit feedback that is used to improve their LLMs, yet we don’t benefit from this data nor get to keep it.<p>The solution is to give developers what they need: <i>transparency, hackability,</i> and <i>control</i>. Every one of us should be able to reason about what’s going on, tinker, and have control over our own development data. This is why we created Continue.<p>— — —<p>At its most basic, Continue removes the need for copy/pasting from ChatGPT—instead, you collect context by highlighting and then ask questions in the sidebar or have an edit streamed directly to your editor.<p>But Continue also provides powerful tools for managing context. For example, type ‘@issue’ to quickly reference a GitHub issue as you are prompting the LLM, ‘@README.md’ to reference such a file, or ‘@google’ to include the results of a Google search.<p>And there’s a ton of room for further customization. Today, you can write your own<p>- slash commands (e.g. ‘/commit’ to write a summary and commit message for staged changes, ‘/docs’ to grab the contents of a file and update documentation pages that depend on it, ‘/ticket’ to generate a full-featured ticket with relevant files and high-level instructions from a short description)<p>- context sources (e.g. GitHub issues, Jira, local files, StackOverflow, documentation pages)<p>- templated system message (e.g. “Always give maximally concise answers. Adhere to the following style guide whenever writing code: {{ /Users/nate/repo/styleguide.md }}”)<p>- tools (e.g. add a file, run unit tests, build and watch for errors)<p>- policies (e.g. define a goal-oriented agent that works in a write code, run code, read errors, fix code, repeat loop)<p>Continue works with any LLM, including local models using ggml or open-source models hosted on your own cloud infrastructure, allowing you to remain 100% private. While OpenAI and Anthropic perform best today, we are excited to support the progress of open-source as it catches up (<a href="https://continue.dev/docs/customization#change-the-default-llm">https://continue.dev/docs/customization#change-the-default-l...</a>).<p>When you use Continue, you automatically collect data on how you build software. By default, this development data is saved to `.continue/dev_data` on your local machine. When combined with the code that you ultimately commit, it can be used to improve the LLM that you or your team use (if you allow).<p>You can read more about how development data is generated as a byproduct of LLM-aided development and why we believe that you should start collecting it now: <a href="https://medium.com/@continuedev/its-time-to-collect-data-on-how-you-build-software-197d12a020d5" rel="nofollow noreferrer">https://medium.com/@continuedev/its-time-to-collect-data-on-...</a><p>Continue has an Apache 2.0 license. We plan to make money by offering organizations a paid development data engine—a continuous feedback loop that ensures the LLMs always have fresh information and code in their preferred style.<p>— — —<p>We’d love for you to try out Continue and give us feedback! Let us know what you think in the comments : )

Show HN: Invoice Dragon – An open source app to create PDF invoices

Show HN: Invoice Dragon – An open source app to create PDF invoices

Show HN: I built a transit travel time map

This was something I built while trying to look for housing in Toronto that was decently transit-accessible to my office while still cheap.<p>The backend is written in Rust. It parses public GTFS data from transit agencies and performs a simple heuristics-based BFS on the bus lines to calculate how long to reach all points in a city.<p>The frontend uses React and Mapbox GL to render each individual road segment based on how long it takes to reach.<p>This project was a great excuse to learn Rust, deployments, and mapping. The source code is here if you are interested: <a href="http://github.com/econaxis/time2reach">http://github.com/econaxis/time2reach</a>

Show HN: I spent 2 years building a personal finance simulator

Hey everyone! After another year of building as a solo dev on nights and weekends, I'm back with an update on this post: <a href="https://news.ycombinator.com/item?id=31083093">https://news.ycombinator.com/item?id=31083093</a>.<p>TL;DR - ProjectionLab (<a href="https://projectionlab.com" rel="nofollow noreferrer">https://projectionlab.com</a>) is a privacy-friendly personal finance planning tool where you can create financial plans that go beyond the standard online retirement calculators. And by popular request, it now supports self-hosting for Lifetime users!<p>Something I'm grateful for is that our community here on HN is the difference between PL existing and not. There was actually a time early on when I was one day away from halting work on it. I posted here on a whim, and was shocked to receive some really constructive and energizing feedback that went on to power my indie dev journey over the past two and a half years.<p>As a quick recap, the story started when I dove head-first down the financial independence rabbit hole. I wanted a hands-on and visual way to explore the trade-offs between different life paths. One thing led to another, and I decided to build ProjectionLab.<p>After last year's Show HN, I really put my nose to the grindstone, and here are some of the big developments:<p>- Self-hosting for Lifetime users (spin up your own private deployment, based on Docker Compose, includes support for auth/encryption)<p>- Cash-flow visualization for each simulated year (sankey charts)<p>- Tax analytics (detailed breakdowns for projected income, taxes, marginal rates, effective brackets, etc)<p>- Major redesign of entire app, with landing page and resources now split into separate project<p>- Filing separately option to improve support for international locations that don't have joint filing<p>- Roth Conversions and 72t (SEPP) distribution modeling<p>- Improvements to US tax estimation (Secure 2.0 updates, rental property tax deductions, Medicare + IRMAA, NIIT, principal residence exclusion, etc)<p>- Better support for planning as a couple<p>- More modeling options for cash-flow priorities to support different budgeting philosophies and goals<p>- Extra liquidity + withdrawal options, ability to fund expenses with specific accounts or route income to specific accounts<p>- Customization options for Monte Carlo simulations (characterization of success rates and outcome types, option to set random seed, etc)<p>- And a whole bunch more! (<a href="https://projectionlab.com/changelog" rel="nofollow noreferrer">https://projectionlab.com/changelog</a>)<p>The HN community has had a huge role in shaping my overall direction with PL, and I can't wait to hear what you all think of the updates and where you would like to see things go from here.<p>As always, PL is free to try, with no need to create an account. It does not ask to link your financial accounts, and it has a sandbox mode if you just want to hop in and see how it works.<p>--Kyle

Show HN: I spent 2 years building a personal finance simulator

Hey everyone! After another year of building as a solo dev on nights and weekends, I'm back with an update on this post: <a href="https://news.ycombinator.com/item?id=31083093">https://news.ycombinator.com/item?id=31083093</a>.<p>TL;DR - ProjectionLab (<a href="https://projectionlab.com" rel="nofollow noreferrer">https://projectionlab.com</a>) is a privacy-friendly personal finance planning tool where you can create financial plans that go beyond the standard online retirement calculators. And by popular request, it now supports self-hosting for Lifetime users!<p>Something I'm grateful for is that our community here on HN is the difference between PL existing and not. There was actually a time early on when I was one day away from halting work on it. I posted here on a whim, and was shocked to receive some really constructive and energizing feedback that went on to power my indie dev journey over the past two and a half years.<p>As a quick recap, the story started when I dove head-first down the financial independence rabbit hole. I wanted a hands-on and visual way to explore the trade-offs between different life paths. One thing led to another, and I decided to build ProjectionLab.<p>After last year's Show HN, I really put my nose to the grindstone, and here are some of the big developments:<p>- Self-hosting for Lifetime users (spin up your own private deployment, based on Docker Compose, includes support for auth/encryption)<p>- Cash-flow visualization for each simulated year (sankey charts)<p>- Tax analytics (detailed breakdowns for projected income, taxes, marginal rates, effective brackets, etc)<p>- Major redesign of entire app, with landing page and resources now split into separate project<p>- Filing separately option to improve support for international locations that don't have joint filing<p>- Roth Conversions and 72t (SEPP) distribution modeling<p>- Improvements to US tax estimation (Secure 2.0 updates, rental property tax deductions, Medicare + IRMAA, NIIT, principal residence exclusion, etc)<p>- Better support for planning as a couple<p>- More modeling options for cash-flow priorities to support different budgeting philosophies and goals<p>- Extra liquidity + withdrawal options, ability to fund expenses with specific accounts or route income to specific accounts<p>- Customization options for Monte Carlo simulations (characterization of success rates and outcome types, option to set random seed, etc)<p>- And a whole bunch more! (<a href="https://projectionlab.com/changelog" rel="nofollow noreferrer">https://projectionlab.com/changelog</a>)<p>The HN community has had a huge role in shaping my overall direction with PL, and I can't wait to hear what you all think of the updates and where you would like to see things go from here.<p>As always, PL is free to try, with no need to create an account. It does not ask to link your financial accounts, and it has a sandbox mode if you just want to hop in and see how it works.<p>--Kyle

Show HN: My Pen Plotting Journey

Show HN: I made a customizable iOS browser for minimalists and myself

Hello HN!<p>So early this year I decided to build an iOS browser offering a large range of customization options, to accommodate anyone’s usage and visual preferences. Been using it as my default browser for 6 months and not looking back.<p>On first launch it looks and behaves a bit like Safari, but to give you an idea, here are the various ways I customized it on my phone.<p>- More screen real estate for the webpage, less for the toolbar.<p>- A compact toolbar containing only the buttons for actions I use the most: new tab, close tab, open tab list. Since I use them hundred times a day, I need them available with button taps instead of swipe gestures.<p>- A toolbar button layout adapted to my left-handedness.<p>- A toolbar that disappears on scroll to allow full-screen reading.<p>- The toolbar and address bar at the bottom, as they should be.<p>- A popup menu showing the full URL and the buttons I use less frequently: back/forward (already available as screen edge gestures), share, reload, settings, etc.<p>- Showing the page title in the toolbar.<p>- Read time estimation for each tab.<p>- Opening the keyboard automatically when I open a new tab.<p>- Sorting tabs by read time, so that I can decide what to read based on how much time and focus I have.<p>- Grouping tabs by domain.<p>- A flat, condensed tab list, without snapshots.<p>- A full-black toolbar in dark mode to read at night.<p>It’s still early days but things like content blockers, reader mode, iPad support, and more should arrive soon enough.<p>And of course, no analytics/monitoring/telemetry, no account creation, no backend. It’s not open source, but you can also inspect the app’s web views with Safari developer tools to see what’s going on under the hood.<p>Would love to hear if the level of personalization my app provides resonates with like-minded people.<p>Have a great day!

Show HN: I made a customizable iOS browser for minimalists and myself

Hello HN!<p>So early this year I decided to build an iOS browser offering a large range of customization options, to accommodate anyone’s usage and visual preferences. Been using it as my default browser for 6 months and not looking back.<p>On first launch it looks and behaves a bit like Safari, but to give you an idea, here are the various ways I customized it on my phone.<p>- More screen real estate for the webpage, less for the toolbar.<p>- A compact toolbar containing only the buttons for actions I use the most: new tab, close tab, open tab list. Since I use them hundred times a day, I need them available with button taps instead of swipe gestures.<p>- A toolbar button layout adapted to my left-handedness.<p>- A toolbar that disappears on scroll to allow full-screen reading.<p>- The toolbar and address bar at the bottom, as they should be.<p>- A popup menu showing the full URL and the buttons I use less frequently: back/forward (already available as screen edge gestures), share, reload, settings, etc.<p>- Showing the page title in the toolbar.<p>- Read time estimation for each tab.<p>- Opening the keyboard automatically when I open a new tab.<p>- Sorting tabs by read time, so that I can decide what to read based on how much time and focus I have.<p>- Grouping tabs by domain.<p>- A flat, condensed tab list, without snapshots.<p>- A full-black toolbar in dark mode to read at night.<p>It’s still early days but things like content blockers, reader mode, iPad support, and more should arrive soon enough.<p>And of course, no analytics/monitoring/telemetry, no account creation, no backend. It’s not open source, but you can also inspect the app’s web views with Safari developer tools to see what’s going on under the hood.<p>Would love to hear if the level of personalization my app provides resonates with like-minded people.<p>Have a great day!

Show HN: I made a customizable iOS browser for minimalists and myself

Hello HN!<p>So early this year I decided to build an iOS browser offering a large range of customization options, to accommodate anyone’s usage and visual preferences. Been using it as my default browser for 6 months and not looking back.<p>On first launch it looks and behaves a bit like Safari, but to give you an idea, here are the various ways I customized it on my phone.<p>- More screen real estate for the webpage, less for the toolbar.<p>- A compact toolbar containing only the buttons for actions I use the most: new tab, close tab, open tab list. Since I use them hundred times a day, I need them available with button taps instead of swipe gestures.<p>- A toolbar button layout adapted to my left-handedness.<p>- A toolbar that disappears on scroll to allow full-screen reading.<p>- The toolbar and address bar at the bottom, as they should be.<p>- A popup menu showing the full URL and the buttons I use less frequently: back/forward (already available as screen edge gestures), share, reload, settings, etc.<p>- Showing the page title in the toolbar.<p>- Read time estimation for each tab.<p>- Opening the keyboard automatically when I open a new tab.<p>- Sorting tabs by read time, so that I can decide what to read based on how much time and focus I have.<p>- Grouping tabs by domain.<p>- A flat, condensed tab list, without snapshots.<p>- A full-black toolbar in dark mode to read at night.<p>It’s still early days but things like content blockers, reader mode, iPad support, and more should arrive soon enough.<p>And of course, no analytics/monitoring/telemetry, no account creation, no backend. It’s not open source, but you can also inspect the app’s web views with Safari developer tools to see what’s going on under the hood.<p>Would love to hear if the level of personalization my app provides resonates with like-minded people.<p>Have a great day!

Show HN: I made a MailChimp alternative that connects to your database

Hi all! Excited to share cc.dev after months of work and refinement.<p>The idea for this product came from trying to do email marketing for my side project, CubeDesk, a site where Rubik's Cube enthusiasts can time themselves, race with one another, train algorithms — it's a fun niche!<p>With over 40k users, sending even a single campaign was becoming expensive with MailChimp. I knew AWS SES would be much cheaper, but it’s just an API with none of the other necessities you need for a robust email marketing platform.<p>Beyond cost, I was also frustrated with having to make sure my database was always in sync with MailChimp and the audience schema they enforced. If I wanted to email every user who had completed 10 solves, that would be a whole ordeal and eat up hours of my day.<p>So, I started (and am now launching):<p><a href="https://cc.dev" rel="nofollow noreferrer">https://cc.dev</a><p>cc.dev connects directly to your database and lets you write SQL queries to target your audience. It's backed by AWS SES, so the cost to send emails is significantly less than what you're used to seeing. Combined with a template builder, media management, and campaign monitoring, cc.dev is meant to be your final destination whenever you need to send marketing emails to your users.<p>Would love to hear your feedback on this! If you're interested in trying out cc.dev as your email marketing platform, shoot me an email and let's have a chat: kash at cc.dev

Show HN: I made a MailChimp alternative that connects to your database

Hi all! Excited to share cc.dev after months of work and refinement.<p>The idea for this product came from trying to do email marketing for my side project, CubeDesk, a site where Rubik's Cube enthusiasts can time themselves, race with one another, train algorithms — it's a fun niche!<p>With over 40k users, sending even a single campaign was becoming expensive with MailChimp. I knew AWS SES would be much cheaper, but it’s just an API with none of the other necessities you need for a robust email marketing platform.<p>Beyond cost, I was also frustrated with having to make sure my database was always in sync with MailChimp and the audience schema they enforced. If I wanted to email every user who had completed 10 solves, that would be a whole ordeal and eat up hours of my day.<p>So, I started (and am now launching):<p><a href="https://cc.dev" rel="nofollow noreferrer">https://cc.dev</a><p>cc.dev connects directly to your database and lets you write SQL queries to target your audience. It's backed by AWS SES, so the cost to send emails is significantly less than what you're used to seeing. Combined with a template builder, media management, and campaign monitoring, cc.dev is meant to be your final destination whenever you need to send marketing emails to your users.<p>Would love to hear your feedback on this! If you're interested in trying out cc.dev as your email marketing platform, shoot me an email and let's have a chat: kash at cc.dev

< 1 2 3 ... 39 40 41 42 43 ... 122 123 124 >