
u/lbkulinski

Riding on the "outside" of the bike lane vs taking the full lane
I've been biking for a few months at this point, mostly around Logan Square and to Lakeview via Kedzie -> Belmont.
For a while now I've been riding on the "outside" of the bike lane to give me more reaction time if I see someone potentially opening a door. If the bike lanes are along the sidewalk I don't do this.
I will merge into the main lane if I see someone blocking ahead or any other sus behavior. If it is night and there aren't many cars I will just ride in the main lane.
There are definitely some drivers that get annoyed by this, but they can just pass me. Is this the right approach?
Waiting at Belmont station in Chicago
Shot on my Canonet QL17 GIII using Portra 400
My latest film roll
Shot on a Canonet QL17 GIII with Ilford HP5 Plus
Logan Square on Film
Shot on a Canonet QL17 GIII with Ilford HP5 Plus
35mm Film Photos
Shot on a Canonet QL17 GIII using Ilford HP5 Plus
CTA Java SDK
I’m not sure how many Java developers there are here, but I thought I’d share a project I’ve been working on since October of last year, a Java SDK for the CTA APIs: github.com/lbkulinski/cta4j-java-sdk.
For those who may not know much about coding, this project aims to make it easy for developers to access CTA information like train and bus arrivals. The CTA APIs offer a lot of good data, but they aren’t well documented and can be a pain to use at times.
I have two main projects that I use the CTA API for, which is why I built this. One is my train/bus tracker, cta4j.com. The other is a Holiday Train Tracker on Twitter (twitter.com/cta4j) and other platforms.
The most recent version of the SDK is complete with all of the API endpoints and data that the CTA provides.
If you’re interested in coding with transit data using Java, give it a try! The Train/Bus API requires getting API keys from the CTA, but the Alerts API does not. There is more information about getting setup in the README of the project.
Here’s an example of the Alerts API using Java’s compact source files introduced in Java 25:
import com.cta4j.alert.AlertApi;
void main() {
AlertApi alertApi = AlertApi.builder()
.build();
alertApi.detailedAlerts()
.findByBusRouteId("70")
.forEach(alert -> System.out.printf(
"Alert ID: %s%nDescription: %s%nFrom: %s%nTo: %s%n%n",
alert.id(),
alert.shortDescription(),
alert.startTime(),
alert.endTime()
));
// Example output:
// Alert ID: 114946
// Description: EB #70 buses will operate via Division, Wells, Oak, and Dearborn. WB buses will operate via Clark, Oak, Wells, and Division.
// From: 2026-08-01T12:30:00Z
// To: 2026-08-01T22:00:00Z
// ...
}
The SDK can be used with Java 21+ and is available on Maven Central. If you have any feedback or ideas, open an issue or PR! I also have a Discord server for my various projects, including ctasmokers.com.
Staged trash for a campaign ad?
Anyone recognize the guy in the suit? Looks like they were filming some kind of campaign ad with staged trash
35mm CTA Photos
Shot on a Canonet QL17 GIII with Ektachrome E100
Pretty Cool Ice Cream and Chicago Transit Authority Partner on New CTA Line-Themed Giveback Pops for National Ice Cream Month
The limited-edition lineup includes:
Brown Line Cookies & Cream – Cookies & Cream ice cream dipped in a chocolate shell and finished with Brown Line sprinkles.
Orange Line Mango Passionfruit – Mango passionfruit ice cream coated in an orange-flavored shell with Orange Line sprinkles.
Blue Line Blue Moon – Blue Moon ice cream encased in a vanilla shell and decorated with Blue Line sprinkles.
Red Line Strawberry Tres Leches – Tres Leches Cake ice cream dipped in a strawberry shell and finished with Red Line sprinkles.
My latest 35mm CTA photos
Shot on a Canonet QL17 GIII using Kodak Portra 400
CTA boss avoids potential grilling for second time as Council members skip meeting
Embarrassing to have missed two meetings due to no quorum. If any of these are your aldermen, please reach out to them. If they aren't going to show up for these meetings they shouldn't be on the committee.
>Ald. David Moore (17th), who attended the meeting virtually and did not count toward a quorum, told the Sun-Times he was disappointed so few members showed that they couldn’t ask questions.
>Panel member Ald. Brian Hopkins (2nd), who missed Wednesday’s meeting, told the Sun-Times he has among the highest attendance rates on the City Council.
>Also missing were Jason Ervin (28th), Jeylu Gutierrez (14th), Ronnie Mosley (21st), Jessie Fuentes (26th) and Desmon Yancy (5th).
My latest film photos
Shot on a Canonet QL17 GIII using Kodak Portra 400
35mm Film Photos
Shot with a Canonet QL17 GIII on Portra 400
Film photos from the Ribbon Cutting
I posted some photos from my phone last week, but just got back my film photos from the event. Thought they might be fun to share. Shot with a Canonet QL17 GIII on Kodak Portra 400
Car driving through the promenade during CBS Interview
Not sure if this was shared, but a car was driving through the promenade during a CBS interview. Kinda funny 😅
Logan Square Ribbon Cutting
The ribbon cutting ceremony this morning