dsohigian

- friends
229 link karma
19 comment karma
send messageredditor for
what's this?

TROPHY CASE


  • Four-Year Club

Once you learn this method, you will never shoot a rubber band any other way. by glasnosticin videos

[–]dsohigian 0 points1 point ago

I learned it while working in the cold storage control room at the Anheuser-Busch brewery in Colorado. All the brewers had rubberband wars using this method.

Once you learn this method, you will never shoot a rubber band any other way. by glasnosticin videos

[–]dsohigian 0 points1 point ago

Well, define "better". Showing the Internets how to shoot a rubberband is kinda fun.

Once you learn this method, you will never shoot a rubber band any other way. by glasnosticin videos

[–]dsohigian 0 points1 point ago

I actually have not heard that one before.

If you use live in Chicago and use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin chicago

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

You're welcome. I may work on one for the Metra soon. BTW, I make these gadgets because they are useful to me too. I started with the Portland Trimet (my hometown) and Zipcar, but it was so much fun I needed to do the Chicago and SF Muni too. It's kinda addictive.

If you use live in Chicago and use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin chicago

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you use live in Atlanta and use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin Atlanta

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin Portland

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Live in Chicago and ride CTA buses? Check out this real-time arrival gadget that shows up to 10 stops you choose. Makes your commute more predictable. by dsohigianin chicago

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Yeah, the BART system in the Bay Area has an API for that, but the CTA does not, so the data is limited.

If you use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin newyork

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you use Zipcar you should check out this iGoogle reservations gadget. Makes reserving a car even simpler. by dsohigianin Seattle

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you live in Boston and use the 39, 111, 114, 116 or 117 MBTA bus lines, then check out this new real-time tracking gadget for iGoogle. Will make your commute more predictable. by dsohigianin boston

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

You can, although again for only those buses listed:

http://www.nextbus.com/predictor/publicMap.shtml?a=mbta&r=39

Click on the "routes" button on the top of the map to select the routes you want to see.

If you live in Boston and use the 39, 111, 114, 116 or 117 MBTA bus lines, then check out this new real-time tracking gadget for iGoogle. Will make your commute more predictable. by dsohigianin boston

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

It would be cool if they added more lines. The good news is that once they do you can simply add them to the gadget and they should show up. I hope they open up the entire system eventually like the San Francisco Muni (I have another gadget for that system).

If you live in Boston and use the 39, 111, 114, 116 or 117 MBTA bus lines, then check out this new real-time tracking gadget for iGoogle. Will make your commute more predictable. by dsohigianin boston

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you live in the Boston area and ride public transit, you should check out this iGoogle Gadget that makes tracking buses easy. You can set up to 3 stops (perhaps near your home/work) and it will show all the latest arrivals in real-time. Note that it only serves a few lines currently (click here to see the list of lines served). The number of lines/stops served will increase as MBTA adds more tracking services.

It’s a great way to make sure you don’t wait in the rain, or miss your next bus. Go here to add it to your iGoogle page(if you don’t use iGoogle currently it’s easy to sign up).

Once you have added the gadget to your homepage you will see instructions on how to add stops. You can click on the link at the bottom of the gadget to search for stops (on the NextBus website). If you like the gadget you can use the link at the bottom of the gadget to give feedback or promote it (on Twitter, Facebook, your blog, etc…).

Live in Chicago and ride CTA buses? Check out this real-time arrival gadget that shows up to 10 stops you choose. Makes your commute more predictable. by dsohigianin chicago

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

The 'L' uses a different system for tracking which does not seem compatible. I might consider making a station status gadget using the information here: http://www.transitchicago.com/travel_information/systemalerts.aspx If there was enough interest...

Live in Chicago and ride CTA buses? Check out this real-time arrival gadget that shows up to 10 stops you choose. Makes your commute more predictable. by dsohigianin chicago

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you live in Chicago and ride public transit, you should check out this iGoogle Gadget that makes tracking buses easy. You can set up to 10 stops (perhaps near your home/work) and it will show all the latest arrivals in real-time.

It’s a great way to make sure you don’t wait in the rain, or miss your next bus. Go here to add it to your iGoogle page (if you don’t use iGoogle currently it’s easy to sign up).

Once you have added the gadget to your homepage you will see instructions on how to add stops. You can click on the link at the bottom of the gadget to search for stops (on the CTA website). If you like the gadget you can use the link at the bottom of the gadget to give feedback or promote it (on Twitter, Facebook, your blog, etc…).

Live in San Francisco and use Muni? Check out this real-time bus tracker gadget by dsohigianin sanfrancisco

[–]dsohigian[S] -1 points0 points ago

sorry, this has been archived and can no longer be voted on

If you live in the San Francisco Bay Area and ride public transit, you should check out this iGoogle Gadget that makes tracking buses easy. You can set up to 3 stops (perhaps near your home/work) and it will show all the latest arrivals in real-time.

It’s a great way to make sure you don’t wait in the rain, or miss your next bus. Go here to add it to your iGoogle page(if you don’t use iGoogle currently it’s easy to sign up).

Once you have added the gadget to your homepage you will see instructions on how to add stops. You can click on the link at the bottom of the gadget to search for stops (on the 511.org website). If you like the gadget you can use the link at the bottom of the gadget to give feedback or promote it (on Twitter, Facebook, your blog, etc…).

Live in Portland and use Trimet? Check out this real-time bus tracker gadget by dsohigianin oregon

[–]dsohigian[S] 1 point2 points ago

sorry, this has been archived and can no longer be voted on

If you live in Portland, OR and ride public transit, you should check out this iGoogle Gadget that makes tracking buses easy. You can set up to 10 stops (perhaps near your home/work) and it will show all the latest arrivals in real-time. If you select on the [map] links next to each stop and bus you will get a popup google map that shows their location. See the gadget here: http://bit.ly/trimet It’s a great way to make sure you don’t wait in the rain, or miss your next bus. Go here to add it to your iGoogle page (if you don’t use iGoogle currently it’s easy to sign up). Once you have added the gadget to your homepage you will see instructions on how to add stops. You can click on the link at the bottom of the gadget to search for stops (on the Trimet website). If you like the gadget you can use the link at the bottom of the gadget to give feedback or promote it (on Twitter, Facebook, your blog, etc…).

Live in Portland and use Trimet? Check out this real-time bus tracker gadget by dsohigianin Portland

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

If you live in Portland, OR and ride public transit, you should check out this iGoogle Gadget that makes tracking buses easy. You can set up to 10 stops (perhaps near your home/work) and it will show all the latest arrivals in real-time. If you select on the [map] links next to each stop and bus you will get a popup google map that shows their location.

See the gadget here: http://bit.ly/trimet

It’s a great way to make sure you don’t wait in the rain, or miss your next bus. Go here to add it to your iGoogle page (if you don’t use iGoogle currently it’s easy to sign up).

Once you have added the gadget to your homepage you will see instructions on how to add stops. You can click on the link at the bottom of the gadget to search for stops (on the Trimet website). If you like the gadget you can use the link at the bottom of the gadget to give feedback or promote it (on Twitter, Facebook, your blog, etc…).

How To Use URL Shorteners to Track Clicks from your MS Word Resume (or other Word Docs) by dsohigianin programming

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Text of post:

Like many people with a technical background, I have lots of links in my resume to companies I have worked for and projects I have completed. When I send out a resume I would like to know whether people click on the links in the resume, but normally I can only get stats for sites I control (using Google Analytics Campaign Tracking). By using a URL shortening service I can embed links that are specific to the resume that I sent, and I can track every click on that link from that specific resume. The only problem here is that creating those links is time consuming, especially if you send out lots of resumes and/or have lots of links in your resume.

I created a macro that can automatically generate trackable links with one click. You need to be somewhat technical to use this macro, and I have only tested it in Word 2007 (please leave comments on whether it works for you in other versions). The macro is simple: it contacts a URL shortening service (either Cligs or Bitly at your option) and looks through all the links in your resume and shortens them using your account (so that you can track them).

You will need three things before you can use this VBA code:

A copy of your resume with standard hyperlinks in Microsoft Word An account at either Cligs or Bitly An API Key for Cligs or Bitly The macro also includes a place for you to enter Google Analytics campaign tracking which will help keep stats for sites you control (if you use Google Analytics).

The parameters at the top of the macro are things you need to set up before running the macro on a document. If you are using Bitly, then enter your Login and APIKey in the variables at the top. If you are using Cligs, enter your APIKey in that variable (leave the other API blank). If you are going to use Google Campaign tracking, then enter in those variables (leave them all blank otherwise).

If you are comfortable in VBA programming you can just create a new macro attached to your resume and paste the code below. You can also download a sample Word 2007 document with the macro already built in. Either way you will need to run the macro from your Word document once you have the variables set up. Note: It’s a good idea to delete the macro from the document once you have run it. Otherwise people opening the document will get a macro security warning when they open the document.

One other note: using a URL shortening service for your links could result in non-operative links if the URL shortening service shuts down (which happened to cligs before they were acquired). So use at your own risk. I also might be willing to add other URL shortening services that might be more reliable (and have an API).

Here is a short (4 min) screencast of how to use the macro. In the example I use Cligs, but the same process applies for using Bitly. Please comment with any questions.

Sub URLShortener() ' ' URL shortener/tracker ' Created by Dave Sohigian http://dave.sohigian.com 1/5/2010 ' For more information go to http://www.techdemoguy.com/?p=192 ' License: Creative Commons Attribution Share-Alike - http://creativecommons.org/licenses/by-sa/3.0/ '

'Variables you should enter. Enter either BitlyLogin AND BitlyAPIKey
'OR CligsApiKey, depending on which service you will use.
'If you want to track the Google Campaign, then enter those three
'variables. Otherwise leave the Google variables blank

BitlyLogin = ""
BitlyApiKey = ""
CligsApiKey = ""
GoogleCampaign = ""
GoogleMedium = ""
GoogleSource = ""

If (GoogleCampaign <> "") Then
    GoogleQueryString = "?utm_source=" & GoogleSource & "%26utm_medium=" _
    & GoogleMedium & "%26utm_content=1%26utm_campaign=" & GoogleCampaign
Else
    GoogleQueryString = ""
End If

'Loop through all of the hyperlinks and shorten the URLs

For i = 1 To ActiveDocument.Hyperlinks.Count
    ApiUrl = ""
    LinkText = ""
    ' select the next hyperlink
    ActiveDocument.Hyperlinks(i).Range.Select
    ' store the name of the hyperlink
    LinkText = Selection.Range.Text
    ' store the url of the hyperlink
    LinkUrl = ActiveDocument.Hyperlinks(i).Address

    ' Make sure it is not a bit.ly or cligs url (would error out)
    If (Left(LinkUrl, 13) <> "http://bit.ly") And (Left(LinkUrl, 13) <> "http://cli.gs") Then
      ' Set up the API object
      Set ObjHttp = CreateObject("MSXML2.XMLHTTP")

      If (BitlyApiKey <> "") Then
        ' Create the API URL for Bitly
        ApiUrl = "http://api.bit.ly/shorten?version=2.0.1&login=" _
        & BitlyLogin & "&apiKey=" & BitlyApiKey & "&history=1&format=text&longUrl=" _
        & LinkUrl & GoogleQueryString
      ElseIf (CligsApiKey <> "") Then
        ' Create the API URL for Cligs
        ApiUrl = "http://cli.gs/api/v1/cligs/create?key=" & CligsApiKey _
        & "&appid=ResumeStats" & "&url=" & LinkUrl & GoogleQueryString
      End If

      If (ApiUrl <> "") Then
        ' Setup the call to the REST API
        ObjHttp.Open "GET", ApiUrl, False         ' False indicates the call is synchronous - wait for URL Result
        ' Send the request
        ObjHttp.send

        ' Get our results (the shortened URL) if the response was okay
        If (ObjHttp.StatusText = "OK") Then
            StrResult = ObjHttp.responseText
        Else
        'Otherwise just keep the original URL
            StrResult = LinkUrl
        End If

      Else
        StrResult = LinkUrl
      End If

      ' Update the Hyperlink in the document with the shortened URL
      If (LinkText <> "") Then
        'If it is a text link, then keep the Link Text
        ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
          StrResult, SubAddress:="", ScreenTip:=LinkUrl, TextToDisplay:=LinkText
      Else
        'Otherwise don't change the Link Text (if it is a linked image it will have "  " as the selection text)
        ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
          StrResult, ScreenTip:=LinkUrl
      End If
    End If

Next i

End Sub

How To Lose Your Idealism In Under Ten Years - Anti-Baby Boomer Rant worth reading by dsohigianin reddit.com

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Blanca, a 50-something nursing assistant, was sitting across from me at the nurses’ station at the Intensive Care Unit inside of a Tenet Healthcare Corporation-owned hospital in downtown Los Angeles. It was midnight, and this was 2004. Blanca’s patients were gurgling, asleep or comatose. I was there talking to Blanca on behalf of workers at Kaiser, who were bargaining away benefits because Tenet, the for-profit, non-union hospital chain was driving down wages in the county. The argument was that every one would be better off, Blanca and Kaiser workers, if they were all in one union.

During advanced pneumonia the lungs fill with fluid so there’s a wet gurgling sound emitted during exhalation. The respirators made a swoosh-pffft noise as they breathed for people who can't. Every thirty minutes or so there’d also be a moan; some sort of agonized cry. If the moan lasted for more than 30 seconds, its owner would be visited.

Blanca made $13.25 an hour after 12 years of being a nursing assistant. Her main issue was pension. She wanted to retire in ten years. Tenet offered no such deal. Blanca eventually became a leader in her department. She signed up her co-workers on a petition to organize, proudly wore her "union: yes" button, and put her face on a flyer with a pro-union quote. The risk of going public in support of a union in a hospital of 700 hundred employees when you’re an immigrant whose job it is to wipe asses from 7pm to 7am should be self-evident.

The union won the election a month later by a narrow margin. Blanca and her co-workers got a solid contract, complete with 401k plans and 14% percent wage hike.

Four years later, Blanca and her co-workers would be picketing outside my office at the union's headquarters in Washington D.C.

It was an extremely ugly fight. It went on for more than a year. It was essentially was a war over who had jurisdiction to organize sectors of the healthcare market, between the local union chapter and the international union. It was turf war cloaked in the language of ideology, union democracy, progressive organizing and political purity. Any one with the smallest sense of organizational acumen could see it for what it was: a naked power struggle between two union bosses that employed the rank and file to carry out their competing agendas.

So, there’s Blanca’s and other union members holding picket signs, chanting ‘SHAME ON YOU’ at anyone who crossed the picket line. I crossed without a second thought. By 2008 I shrugged at any symbolism that act held; I was completely disillusioned and numb and just wanted to get to my WiFi connection.


My disillusionment was not inevitable. It’s not a story about a boundless idealism that could only rot when exposed to the mendacity of ‘real politics.’ Actually I’m a pragmatist to my core: I was well aware that I was part of an imperfect institution that was trying to solve a very big problem. 91% of the American workforce did not have the right to collectively bargain their wages, job security or retirement. My belief was that I could have a fulfilling career by trying to fix this problem. I knew that any bureaucracy or institution would be clogged with deadwood, indolence and dysfunction. But I also knew there those who were capable of transformational leadership.

The problem was that most of the decision makers—whose salaries were funded by the 1.2 million dues-paying members—were made up of baby boomers. And today, I can tell you that I will never work for an institution that is lead by that generation, never again.


Those who make a career of professional do-gooding, do so because it fulfills some psychological need; altruism, guilt, vanity, ego. Obviously, there is no problem with that. Whatever motivates someone to get into public service, or any profession, is immaterial when compared to their accomplishments.

But the psychological needs of the Boomer generation are not something I can suffer. And suffering is a big part of it. Their ideological hangups are infecting every aspect of life. As they age, they are only getting worse.

Politically, their numbers and self-regard are basically the reason why our ‘idealistic’ generation is disenfranchised by the political process. The left has ceased to be an agent of social change for the past forty years; the right is cannibalizing itself. The political battles between the two have, as the battle has gone on, become symbolic, rather than being about actual, tangible benefits for real-life people.

This is not a fight worth my time. I don’t plan to squeeze any humans from my womb. What problems and solutions exists now are the only ones I will ever know.

Culturally, I find the Boomers tedious and unhelpful. Their confused notions about counterculture have infected our generation. The kind of water bottles you buy, car you drive, fair trade coffee you slurp: can this serve as some kind of political action? This idea is laughable. It gives the false illusion of social engagement. It leads us to the conclusion that you fight the structural problems of capitalism by buying non-mainstream things: like leggings or a Prius! But capitalism loves counterculture. It thrives on it! Just flip on your TV at 3 a.m. and watch Peter Fonda hawk the TIME LIFE GOLDEN 60S music collection!

Economically, the Boomers have devastated the country. We inherited debt, a shredded safety net; pensions went the way of the horse and buggy; largely, no one born after 1982 will ever have a full-time job. I don’t know what the new economic model is. We are a waning empire that has seen unparalleled progress and expansion in the modern era. That's unraveled.

This was the same critique that was leveled at the stultifying Eisenhower generation by the Boomers. Maybe my disappointment is just a product of being young. Or maybe the Boomers were right then and they are wrong now.


Mine is, I suppose, a transitional generation. Things may get worse; they may get better. I don't have any interest in butting against the structures of the previous generation any longer.

My father, Marc, told me a story about his anarcho-syndicalist reading group in college. Their leader was Farhar, a British-educated Iranian who loved to wear silk scarves and crushed velvet blazers. He was from money, his speeches were entrancing, and he loved Marx. One day my dad and his dirty finger-nailed crew asked Farhar why he traipsed around campus dressed like a Victorian aristocrat? Why, if he believed in the power of the proletariat, did he live his life like an elite? Farhar expelled a plume of cigarette smoke and said, “Marc, just because I know the workers will take over the means of production doesn’t mean I have to join them.”

Best of luck, tweens.

Natasha Vargas-Cooper works for herself now.

—The End of the 00s

Big Data and The Need for Speed (Especially At Query Time) by dsohigianin programming

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Full Text:

It should be no surprise that there is growing interest in data analytics and a rise of “post-relational” analytic data stores. Traditional databases work well to load data in, but they are becoming problematic to get answers out when faced with growing scale and complexity. There is a growing problem with Big Data, defined by Adam Jacobs in a recent ACMqueue article, “Pathologies of Big Data.” Big Data is “data whose size forces us to look beyond the tried-and-true methods that are prevalent at that time.” Given our growing data tsunami, many people are looking beyond the tried-and-true methods of relational databases. Billions of rows can easily be stored, but Jacobs describes the pathologies of query scalability, even when asking for basic counts!

You can store data all day, but the value of data is in its query: in its exploitation. I remember first hearing this word, “exploitation”, from the leader of a UK intelligence agency on one of my trips to London. Whether for government or commercial interests, the time to analyze and act is what matters. The word struck me and has remained with me every since. Exploitation time is what matters. Furthermore, the number of queries is increasing faster than the growth of the data tsunami itself. Query time is what matters because response time in most critical, and critical times drive the massive load of many simultaneous requests.

The weakness of transactional databases to support fast and flexible analysis is now widely accepted, and a plethora of emerging approaches include multi-dimensional star schemas, column-oriented, in-memory, and value-based stores to mention a few, including associative memories from Saffron. However, if query speed is the requirement for analysis, and analysis requires counting things as its core (see “It’s All Just Counts”), then the associative memory approach will be fastest to query. All the connections and all the frequencies and frequency distributions of the connections are ready to be queried, all at the ready for analysis.

Because Hadoop, the massive data store derived from Google’s data store, is so well known, it serves as a good case in point. Hadoop and its MapReduce architecture are great for what they were intended to do, such as in Google’s search engine. On the other hand, Hadoop is now being pushed toward almost every Big Data application without understanding its limits. For example, Hadoop should not be used as a DBMS. A recent presentation, “ The Big Data Revolution”, by Mike Stonebreaker of Vertica with Mike Olson of Cloudera makes this point, positioning Hadoop for ETL but not as a DBMS. One report from Google of Hadoop’s use as a DBMS is criticized by Stonebreaker as a “head fake”, a move without real effect. Google’s own earlier research report, the Sawzall Report in 2005, comments how Hadoop in inappropriate for SQL and operations such as joins. But attempts to use Hadoop for any Big Data problem continue and the debate goes on.

So how about storing counts in Hadoop? The JASONs, a scientific advisory group to the US Government, wrote a recently declassified report, “ Data Analysis Challenges”, which comments on how Hadoop is fundamentally batch-oriented and not-transactional. In consequence, the JASONs mark it as inappropriate for data updates. If Hadoop is ill advised for updating data, it is even worse for updating counts. By definition, counts are always being updated. If data arrives all the time and memory is represented in terms of counts, then a more transactional store is required. Our brains observe the world and update memories all the time in real-time.

Another approach using Hadoop attempts to run massively parallel MapReduce algorithms at query time. In other words, given a massively distributed data store, analysis is provided by running parallel and distributed data mining algorithms over the data store. This sounds great at first blush. But as I recently heard from direct experiences, the first step of many (if not most) data mining algorithms is to scan for the frequency counts. This scanning wastes time during query, precisely when time matters most. Not only does it take time to count by scanning over all the data, the dependency of algorithms to scan for these counts before other computations weakens the parallelism of MapReduce. Several passes are required in sequential dependency. Cloudera uses Hadoop for machine learning and data mining, but even Mike Olson admits, “Hadoop is a batch-oriented tool” and can take minutes if not hours to compute complex queries.

The future of “Hybrid Data Centers” is also well articulated by all presenters of “ The Big Data Revolution”. No one representation will do everything. Each approach to Big Data has its strengths and weaknesses. To be clear, Saffron – like Hadoop – is not appropriate as a DBMS. We joke about ourselves in saying, “Don’t use Saffron to run your accounting system!” SaffronMemoryBase is intended for a new kind of data analysis, including real-time updates and real-time query for complex analysis.

More is required to achieve this speed than the store of counts. Everything is pre-counted in a memory-base, but as I hope to explain in later postings, the pre-joining and pre-sorting of Saffron’s matrix representation further satisfy the need for speed. Otherwise, the lost time and CPU load of table scanning and table joining can be substantial, just when time and load are most critical.

Commentary by Neil Howe: More on American Pie and the Fourth Turning by dsohigianin reddit.com

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Full Text: Proviso: I don’t of course agree with everything–or maybe even most of the things–Jim Quinn says. But I do love the passion and intensity and texture of his analysis. He is definitely a worthy contributor. I don’t know his age, but I guess like the rest of you he’s Boomer-Xer cusp.

On the starting date for the Fourth Turning (Crisis) (4T), I believe Bill and I did a column on the 4T site several years ago detailing all the reasons why we thought it did not begin with 9/11. We got some flak at the time, because there were lots of people who wanted it to begin then. But to our eye, it was clearly too early. Typically, a new turning begins after all of the living generations begin to move into their new phases of life. In 2001, clearly that hadn’t happened yet: Boomers were not yet retiring, Generation X (born 1961-1981) were not yet taking over any institutions as midlife leaders, Millennial (born 1982-200?) were barely graduating high school, and so on. We predicted that the Third Turning (Unraveling) (3T) mood would yet have an Indian Summer… and so it did. Keep in mind that on the “Hero clock” of the last 4T, we are still not quite due for the 4T to begin. The ‘29 Crash happened 28 years after the first G.I. (born 1901-1924) birth year. We will hit that same year for Millennials in… 2010.

All that being said, many are asking me if I think the 4T has yet started. I’m with Mr. Cooper. For nearly a year now, I’ve been saying that a strong case can be made that it started in 2008–with the beginning of an epic financial crash (a 60% decline in the global Dow from peak to trough) and an extraordinary national election that may signal an enduring political realignment and that has, for the time being, put government on a sort of permanent emergency fiscal footing (with 10% of GDP deficits that may only come down slowly if at all). And yes thanks to 911 everyone knows that we are engaged in seemingly endless Asian wars–but now, thanks to the election, they are bipartisan wars… and bipartisan showdowns over nuts with nukes. We’ve got plenty of moving parts. I think one could say we’ve got sufficient or “critical” mass to call this the beginning of a 4T. The next two or three years must be watched closely. The crucial question, if indeed the 4T is underway, is determining when the “regeneracy” phase of the 4T will begin.

On the question of dating the Homelanders. Let’s assume the Millennials are a 23-year-long generation (perfectly plausible: one year shorter than the GIs, one year longer than the Xers). That would put their last birth year at 2004. Which means the first Homelander birth year is 2005. Let’s now assume that 2008 marks an extended period (ten “lost years” or more) of very poor economic performance–with high unemployment, low capacity and consumer confidence, stagnant global trade, etc.. That would precisely mark the Homeland Generation as the generation having no memory of the Great Boom. All Millennials will recall at least some childhood during the zany ’90s and early oughts; Homelanders not. Exactly in the same manner that all G.I.s could later recall at least some childhood during the Roaring Twenties–but the Silent (born 1925-1942) (born starting in 1925–the oldest were turning four at the Great Crash) could not.

In presentations I do for K-12 teachers and administrators, I am starting to spend more time talking about the Homelanders (they may now be in preschool–and will soon be entering grammar school). And yes they have all the early markings of the Artist archetype. They are heavily protected by their Gen-X moms and dads, who overwhelmingly believe they are raising their kids in a more hands-on, interventionist, kid-safety-comes-first style than they themselves were raised. Just like the Lost Generation, who discovered the behavioralist child-rearing guru John Watson, so too are Xers parents deep into the behavioralism of child-care guides filled with “do’s and dont’s” rules. In our recent book “Millennials and K-12 Schools” (2008), we have a small chapter on the Homelanders. Every day we are expanding our insights. I hope sometime soon to write a longer column on them for all of you.

It’s getting late. Anyway, thanks again for being here. Last weekend I did a three-hour radio show on Coast-to-Coast AM (11 PM to 2 AM Pacific Time), and I was extremely grateful, in the last hour, to get a great number of phonecalls from Boomer (born 1943-1960) and Gen-Xers around the country who first read our books in the early ’90s and have been following us ever since. This was my fourth or fifth show for them–and they will probably soon have me on as a regular (rough hours I know!). I hope to meet you on one of these show. In any case, I can truthfully say that it’s your curiosity, your enthusiasm, and the sharing of your own experiences that has always made this worthwhile for both of us–Bill, while he was still with us, and myself for as long as I am around.

Overparenting: Backlash or Flashback? by dsohigianin reddit.com

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Full Text:

The cover of Time Magazine this week features on article on overparenting:

http://www.time.com/time/nation/article/0,8599,1940395-1,00.html

(thanks to JenX67 for the link)

The claim is that a backlash is forming, but I wonder whether that will really be the case. The author of the Time article doesn’t seem to discriminate between over-achieving parenting (typical of Boomer (born 1943-1960)) and over-protective parenting (typical of Generation X (born 1961-1981)). Things like “slow parenting” are a good example of where Gen X is rejecting the Boomer over-achiever style:

This is a Slow Family Living class, taught by perinatal psychologist Carrie Contey and Bernadette Noll. “Our whole culture,” says Contey, 38, “is geared around ‘Is your kid making the benchmarks?’ There’s this fear of ‘Is my kid’s head the right size?’ People think there’s some mythical Good Mother out there that they aren’t living up to and that it’s hurting their child. I just want to pull the plug on that.”

There is definitely a Gen X driven backlash against the whole perfectionist Boomer “hyper-parenting” style. But the whole move back to simple, slow, home-based child rearing often leads to parenting styles that are even more hands-on and protective than they were before. Workshops on how to help kids by “letting go” and the mathematical reassessment of which risks are worth guarding against has a comical aspect. You will know when the next generation of young children are arriving (their parents will be late-wave Millennial (born 1982-200?)) when no one is any longer interested in this subject. We’ve built a whole new world that is basically safe, so now let’s just ignore them and not worry any longer. When we reach that point, young Prophets (the next incarnation of the Boomers) will be among us.

Grails, The Good and The Bad by dsohigianin programming

[–]dsohigian[S] 0 points1 point ago

sorry, this has been archived and can no longer be voted on

Full Text:

Grails, The Good and The Bad SEP 21, 2009 by Jared Peterson As I’ve mentioned here before we’ve been using Grails to build the web front-end for Sierra as well as the Sierra REST API. This week has provided a couple of great examples of the joys, and pains, of using open source software. Let me start by saying that using Grails is mostly all joy, and not much pain.

While working on the administration console for Sierra this week I ran into a case where I needed to paginate a set of results. Having built web applications for years now I have some pretty tried and true methods for doing this. However, in the past while using other frameworks these methods have involved me writing a decent chunk of code. With Grails that chunk of code is no longer needed. Or, a least I don’t have to write it. Let me show you a simple example. Let’s say we have a “show” method on a UsersController that either fetches a single user (if we pass in an id), or returns a list of all users. It might look something like this:

def show = { if (params.id && User.exists(params.id.toLong())) { def user = User.get(params.id) [user: user] } else { // default max num for the page to 10 if not specified if (!params.max) { params.max = 10 } render view: "list", model: [userList: User.list(params)] } } Notice the call to “User.list(params)”. This is passing in the URL parameter coming from the client into call to fetch the users. If those parameters contain paging information then the list() method will fetch the proper subset of users. I didn’t have to code the list() method. Grails just gives it to me.

The last piece needed to get this working is a simple one line addition to your list.gsp file so that those URL parameters actually get passed in and the pagination controls get rendered. That line looks like this:

; That’s it! Done! We have pagination and it only took about 15 minutes (mostly spent reading documentation) where as it would have taken at least an hour had I coded it all myself (sorry, I’m slow).

Now for the “Bad”, or at least the not so pleasant. I spent some time this week implementing a load balancing solution for the Sierra REST APIs. While doing this I decided that I needed to externalize some of the Grails configuration. When you create a Grails application your configuration normally lives in Config.groovy. This is great to get started, but as your app matures you don’t want to have to recompile just to point at a new database, etc… Config.groovy gives you the ability to easily load external configuration files using a command like this:

grails.config.locations = ["classpath:${appName}-config.properties"] If you do just this things work great, but I started thinking that I probably wanted things to work differently in my development environment than in my production environment in regards to loading external configuration. Grails has thought about this desire and gives you the ability to define “environments” blocks within your Config.groovy. I thought that using this along with loading external configuration would be the perfect combination. Not so fast Jared. It turns out that these two features don’t play nicely together. I think this is a bug, or simple stupidity on my part. I’m open to either option. Using Grails 1.1.1 if you put a “grails.config.locations” definition inside of an “environments” block the external configuration will not be loaded. I’ve logged the bug with the Grails folks here.

I wonder fun next week will hold?

view more: next